我要做的是将列表中每个列表项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()
答案 0 :(得分:1)
每次循环都会覆盖x
和y
的值,因此只存储最后一个点。将您的x
和y
声明移到循环之外。
尽管利用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)
它紧凑且易读,应该可以使用。