循环嵌套列表并将每个嵌套列表的每个索引添加到另一个列表

时间:2013-12-09 19:40:20

标签: python list

我要做的是将列表中每个列表项a的每个索引0和列表y中列表a的每个项目的每个索引1放在一起。显示图表时,它只出现一个点。有人知道我做错了什么吗?提前谢谢。

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()

2 个答案:

答案 0 :(得分: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形成的,{{3}}获取x,y的每个列表,并将xs分成第一个返回的列表,ys分成第二个列表。

答案 1 :(得分:1)

试试这个:

x, y = zip(*a)

它紧凑且易读,应该可以使用。