jam*_*ieb 10 python list-comprehension list
我是一个Python新手,我想要做的事情之一是围绕列表理解.我可以看到它是一个非常强大的功能,值得学习.
cities = ['Chicago', 'Detroit', 'Atlanta']
airports = ['ORD', 'DTW', 'ATL']
print zip(cities,airports)
[('Chicago', 'ORD'), ('Detroit', 'DTW'), ('Atlanta', 'ATL')]
Run Code Online (Sandbox Code Playgroud)
如何使用列表推导,以便将结果作为列表中的一系列列表而不是列表中的一系列元组?
[['Chicago', 'ORD'], ['Detroit', 'DTW'], ['Atlanta', 'ATL']]
Run Code Online (Sandbox Code Playgroud)
(我意识到在这种情况下字典可能更合适,但我只是想更好地理解列表).谢谢!
Gre*_*ill 32
像这样的东西:
[[c, a] for c, a in zip(cities, airports)]
Run Code Online (Sandbox Code Playgroud)
或者,list构造函数可以将元组转换为列表:
[list(x) for x in zip(cities, airports)]
Run Code Online (Sandbox Code Playgroud)
或者,map在这种情况下,函数略显冗长:
map(list, zip(cities, airports))
Run Code Online (Sandbox Code Playgroud)
如果你想在不使用zip的情况下这样做,你必须做这样的事情:
[ [cities[i],airports[i]] for i in xrange(min(len(cities), len(airports))) ]
Run Code Online (Sandbox Code Playgroud)
但除了智力锻炼外,没有理由这样做.
使用map(list, zip(cities, airports))更短,更简单,几乎肯定会运行得更快.