2017-06-05 84 views
0
列表

字符串對象的列表,就像如何創建包含100數字字符串,其名稱是串聯

nodes=["#A_CN1","#A_CN2","#A_CN3","#A_CN4","#A_CN5","#A_CN6","#A_CN7","#A_CN8","#A_CN9","#A_CN10"] 
在上面的列表

在這裏有10個元素,但我需要使用約100元和元素就像#A_CN100

有沒有什麼辦法來表示它,而不是在Python中寫100次?

如果假設有100個元素的列表,其中每個元素本身是什麼樣子,節點1的列表,節點2 ..都是一些列表

nodes=[node1,node2,node3,node4,node5,node6....node100] 

如果我表達這種

nodes=[node{0}.format(i) for i in range(1,101)] 

但是,這會引發錯誤!如何糾正這一點?

+0

你更新的問題是不明確的。你不應該至少公佈一個node1,node2的樣子麼? – e4c5

+0

https://stackoverflow.com/help/mcve – e4c5

回答

6

一個一個內膽採用列表內涵

nodes = ["#A_CN{0}".format(i) for i in range(1,101)] 

還有在評論一個建議,即發電機版本來證明。它應該是這樣的:

nodes = ("#A_CN{0}".format(i) for i in range(1,101)) 

但較爲普遍,這是通過列出

nodes = list("#A_CN{0}".format(i) for i in range(1,101)) 

因此,我們最終與相同的結果列表理解。然而,第二種形式很有用,如果你想生成約一百萬項。

+0

很好的答案,+1,但我會編輯並添加'nodes ='來適應他的問題並避免混淆。此外,如果它將只迭代一次,也許生成器比列表更好(即使問題特別是關於列表) –

+0

現在如果節點類似= [node1,node2,node3,node4 .... node100],並且每個元素都是自身的一個列表。[range {0} .format(i)for range(1,101)]將無效,如何糾正這種情況? – Nikhil

+0

這不是你問的。 – e4c5

1

您省略了引號(或撇號)。取而代之的

nodes=[node{0}.format(i) for i in range(1,101)] 

使用

nodes=["node{0}".format(i) for i in range(1,101)] 
+0

如果我們把引號放在列表中的元素不會成爲字符串,這是我沒有放過的原因。實際上,這些不是字符串,它們是類實例的名稱。 – Nikhil

+0

**請幫助我們爲您提供幫助。**展開您的答案並向我們展示一個輸入和輸出示例。順便說一句。 *不管*節點的值如何,節點{0}具有*無意義*(語法錯誤),'format()'方法只適用於* strings *。 – MarianD

+0

對不起,我不能提出一個新的問題,它給像垃圾郵件增加。所以,你可以請upvote的問題,並從-1 0。我會非常感激你! @MarianD – Nikhil