如何通过循环按顺序制作列表

2024-04-25 02:30:32 发布

您现在位置:Python中文网/ 问答频道 /正文

转换

mylist = [['Taiwan', 'Japan', 'Korea'], [18, 30, 20], ['False', 'True', 'False'], [1, 2, 3]]

newlist = [['Taiwan', 18, 'False', 1], ['Japan', 30, 'True', 'False', 2], ['Korea', 20, 'False', 3]]

我试着用for来解决这个问题:

for i in range(len(mylist)):
    for j in mylist:
        print(j[i])

但我没有得到预期的结果:

Taiwan

我不知道该怎么办?请帮忙。你知道吗


Tags: infalsetrueforlenrangeprintkorea
3条回答

您可以使用zip:

mylist = [list(i) for i in zip(*mylist)]

我的列表:

[['Taiwan', 18, 'False', 1], ['Japan', 30, 'True', 2], ['Korea', 20, 'False', 3]]

就用zip!你知道吗

>>> list(zip(*mylist))
[('Taiwan', 18, 'False', 1), ('Japan', 30, 'True', 2), ('Korea', 20, 'False', 3)]

使用这一行:

>>> [[item[j] for item in mylist] for j in range(len(mylist[0]))]
[['Taiwan', 18, 'False', 1],
 ['Japan', 30, 'True', 2],
 ['Korea', 20, 'False', 3]]

相关问题 更多 >