2013-12-09 66 views
0

我想要做的是將列表a中的每個項目的每個索引0放入列表x中的每個項目的每個項目在列表中列出一個。當顯示情節時,它只出現一個點。有人知道我做錯了什麼嗎?提前致謝。在一個嵌套列表中循環並將每個嵌套列表的每個索引添加到另一個列表

a = [[1,2], [2,3], [3,4], [5,6], [6,7]] 

for item in a: 
    x = [ ] 
    y = [ ] 
    x.append(item[0]) 
    y.append(item[1]) 


plt.plot(x, y, 'ro') 
plt.axis([-50, 50, -50, 50]) 
plt.show() 
+0

在每次循環迭代中,您將x和y設置爲空列表。將x = []和y = []移出for循環。 – user2737086

回答

1

您可以通過循環覆蓋的每一次xy值,所以只有一個點被存儲。在您的循環之外移動您的xy的聲明。

更有意義利用Python的列表理解的,但:

x, y = ([p for p,q in a], [q for p,q in a]) 
plt.plot(x, y, 'ro') 
plt.axis([-50, 50, -50, 50]) 
plt.show() 

列表理解:

([p for p,q in a], [q for p,q in a]) 

這段代碼返回一個2元組的元素是兩個Python列表。這些列表使用list comphrehension形成,該列表獲取x,y的每個列表並將x分成第一個返回列表,並將y分成第二個列表。

+0

好的。非常感謝! :)你能解釋一些關於列表解析的內容嗎? – user3084240

1

試試這個:

x, y = zip(*a)

它結構緊湊和可讀性,它應該工作。

相關問題