问题描述
我正在尝试反转以下内容:
z = list(reversed(i) for i in zip(['FRED','CORWILL'],['WILFRED',['RAPHAEL',['ALFRED',['BARNEY','TORNBULL'],['BETTY',['BJON','TORNBULL']))
print(z)
所以基本上,我需要 ['FRED','CORWILL'] 变成 ['CORWILL','FRED] 并且对于所有其他列表也是如此。
有人可以帮忙修改上面的代码,而不是编写全新的代码来实现所需的输出吗?
谢谢
解决方法
你把问题复杂化了,你用的逆函数已经帮你解决了!
print(list(reversed(["FRED",'CORWILL'])))
对于多个情况,您只需为每个名称列表重复该过程。
print(list(list(reversed(names)) for names in [['FRED','CORWILL'],['JOHN','MARIA']]))
请注意,我使用了 list(reversed(i))
而不是 reversed(i)
,因为 reversed 返回的是一个生成器,而不是我们在打印时可以看到的实际列表。以下将是您执行时的输出:
[
您不需要zip
、reversed
、list
...
initial = [
['FRED',['WILFRED',['RAPHAEL',['ALFRED',['BARNEY','TORNBULL'],['BETTY',['BJON','TORNBULL']
]
你可以这样做:
swapped = [[b,a] for [a,b] in initial]
甚至这个:
swapped = [sublist[::-1] for sublist in initial]