我需要在循环中创建一个包含多个值的临时变量列表。

31 浏览
0 Comments

我需要在循环中创建一个包含多个值的临时变量列表。

这个问题已经有答案了:

如何将一个列表的列表变为一个平坦的列表?

marks={"Farah":[20,40,50,33],"Ali":[45,38,24,50],"Sarah":[50,43,44,39]}
print(" " ,list(marks.keys()) , "-\n", list(marks.values()))
for key,value in marks.items():
    for j in marks.values():
        for k in (j):
            print(k)

这是我的代码,我需要获取所有存储在k中的变量的列表,它们是20、40、50、33、45、38、24、50、50、43、44、39。

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以使用 itertools.chain

from itertools import chain
marks={"Farah":[20,40,50,33],"Ali":[45,38,24,50],"Sarah":[50,43,44,39]}
output = list(chain(*marks.values()))
print(output) # [20, 40, 50, 33, 45, 38, 24, 50, 50, 43, 44, 39]

注意,在 python 版本低于 3.7 的情况下,列表中的顺序可能会不同。

另外,如果你需要使用 for 循环(例如,因为你正在执行其他操作)并且需要存储临时值,则可以先创建一个空列表,然后在每次迭代时将值附加到列表中:

output = []
for val_list in marks.values():
    for v in val_list:
        print(v)
        output.append(v)
print(output)

0