2013-11-27 43 views
1
empty = [] 
def empty_list_maker(f): 
    for i in range(0,f): 
     empty.append([]) 
value=50 
empty_list_maker(value) 
print empty 
print len(empty) 

有什么办法可以在单行代码中做到这一点?我有一个非常复杂的功能,有时我需要0值而不是[],所以会变得困惑。在一行代码中执行它会容易得多。Pythonic的方式来创建一个清单X数量的空子列表

+1

这在[Python常见问题](http://docs.python.org/3/faq/programming.html#how-do-i-create-a-multidimensional-list)中有解释。确切包括'[[] * 50]'做什么以及为什么你不需要它。 – abarnert

回答

5

一行代码:

empty = [[] for _ in xrange(50)] 

对于数字,你也可以使用:

empty = [0] * 50 

但做使用与可变的内容 - [[]] * 50是50只引用到一个列表相同的列表,而不是50个不同的空列表。

+0

你是老板!谢谢。这真的很奇怪[[]] * 50是如何工作的,但它不是。 50份同样的名单嗯 –

相关问题