有人能帮助纠正列表中列表的反转吗?

2024-10-01 15:32:48 发布

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

我正试图扭转以下局面:

z = list(reversed(i) for i in zip(['FRED', 'CORWILL'], ['WILFRED', 'CORWILL'], ['RAPHAEL', 'CORWILL'], ['ALFRED', 'CORWILL'], ['BARNEY', 'TORNBULL'], ['BETTY', 'TORNBULL'], ['BJON', 'TORNBULL']))

print(z)

所以基本上,我需要['FRED','CORWILL']变成['CORWILL','FRED],其他所有的列表都是一样的

是否有人可以帮助修改上述代码,而不是编写全新的代码来实现所需的输出

谢谢


Tags: 代码inforzipfredlistalfredraphael
2条回答

您不需要zipreversedlist

initial = [
    ['FRED', 'CORWILL'],
    ['WILFRED', 'CORWILL'],
    ['RAPHAEL', 'CORWILL'],
    ['ALFRED', 'CORWILL'],
    ['BARNEY', 'TORNBULL'],
    ['BETTY', 'TORNBULL'],
    ['BJON', 'TORNBULL']
]

您可以这样做:

swapped = [[b, a] for [a, b]  in initial]

甚至这个:

swapped = [sublist[::-1] for sublist  in initial]

你已经把问题复杂化了,你使用的反向函数已经为你解决了问题

print(list(reversed(["FRED", 'CORWILL'])))

对于多重情况,您只需要对每个名称列表重复该过程

print(list(list(reversed(names)) for names in [['FRED', 'CORWILL'], ['JOHN', 'MARIA']]))

请注意,我使用了list(reversed(i))而不是reversed(i),因为reversed返回的是一个生成器,而不是打印时可以看到的实际列表。以下是您执行此操作时的输出:

[<list_reverseiterator object at 0x0000024119326EB0>, <list_reverseiterator object at 0x0000024119326EE0>]

相关问题 更多 >

    热门问题