gpt4 book ai didi

python - 如何使用嵌套循环打印嵌套列表?

转载 作者:行者123 更新时间:2023-11-28 22:24:29 24 4
gpt4 key购买 nike

您好,我有一个简化的问题示例。

我想得到一个输出

1
a
b
2
c
3
d
e
f
4
g
5
h

我尝试了不同的变体,但可以弄清楚其中的逻辑。我的代码如下。提前感谢您的帮助。我试图在不使用 numpy 或 panda 的情况下做到这一点。我用的是python3.4

num = ["1" , "2" ,"3" , "4" , "5" ]
let = [["a","b"],["c"],["d","e","f"],["g"],["h"]]


for x in num :
print(x)
for y in let :
print(y)

zipBoth = zip(num,let)


for x,y in zipBoth :
print(x)
print(y)

最佳答案

请注意,您正在尝试打印两个列表的内容。这是时间上的线性操作。两个循环不会削减它 - 这是时间复杂度的二次方。此外,您的第二个解决方案不会展平 y


使用 yieldyield from 定义辅助函数。

def foo(l1, l2):
for x, y in zip(l1, l2):
yield x
yield from y

for i in foo(num, let):
print(i)

1
a
b
2
c
3
d
e
f
4
g
5
h

如果你想要一个列表,只需调用 foo 并用 list 包装它:

print(list(foo(num, let)))
['1', 'a', 'b', '2', 'c', '3', 'd', 'e', 'f', '4', 'g', '5', 'h']

请注意,yield from 从 python3.3 开始可用。

关于python - 如何使用嵌套循环打印嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46366139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com