2012-11-09 34 views
1

我試圖來生成該列表:生成列表一個字符串後跟一個數字無值

["var",None,None,None,None,None] 

有什麼方式做到這一點?我以爲

list_2=["var",None for cnt in range(5)] 

會工作,但它只會產生一個錯誤。我的第二次嘗試,

list_1=["var"].extend([None for cnt in range(5)]) 

也不完全是一個成功的故事。任何人都可以請幫忙?

謝謝!

回答

8

這可以簡單地做作爲

mylist = ["var"] + [None] * 5 

原因,

["var"].extend([None for cnt in range(5)]) 

就不行,因爲延伸更改列表就地,但不返回原始列表。你可以做

mylist = ["var"] 
mylist.extend([None for cnt in range(5)]) 

你的第二次嘗試

list_2=["var",None for cnt in range(5)] 

也是不正確

  1. 由於其沒有括號發電機表達。
  2. 即使它會工作,它會增加你什麼都在列表中的第二項
+0

非常感謝!我不知道「+」運算符可以用在列表對象上!這是偉大的人!你統治! – RubenGeert

+0

+1給出正確的答案並指出可能的問題 – Ber

1

你可以這樣來做:

>>> list_1 = ["var"] + [None]*5 
>>> list_1 
['var', None, None, None, None, None] 
0

的Python 3.2

a=["var"] 
_=[a.append(None)for v in range(5)] 

另一種方式與擴展:

a=["var"] 
b=[None]*5 
a.extend(b) 
相關問題