python访问列表的第二个元素

MAG*_*MAG 3 python

当我打印我的列表时,我得到这样的东西

[[6.0, 0.5], [6.1, 1.0], [6.2, 1.5], [6.3, 2.0], [6.4, 2.5], [6.5, 3.0], [6.6, 3.5], [6.7, 4.0], [6.8, 4.5]]

我想从上面的列表中提取第一个和第二个元素到单独的列表中,以便我可以让plt为我绘制它.

所以我的结果应该是 [6.0,6.1,6.2 ... 6.8][0.5,1.0,1.5,2.0 , ... .4.5]

我想知道我们是否有更清洁的解决方案

for sublist in l:
    i=0
    for item in sublist:
       flat_list.append(item)
       break #get first element of each  
Run Code Online (Sandbox Code Playgroud)

gag*_*nso 12

zip()将提供所需的输出。

xy = [[6.0, 0.5], [6.1, 1.0], [6.2, 1.5], [6.3, 2.0], [6.4, 2.5], [6.5, 3.0], [6.6, 3.5], [6.7, 4.0], [6.8, 4.5]]
x,y = zip(*xy)
print(x)
print(y)
Run Code Online (Sandbox Code Playgroud)

输出:

(6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8)
(0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5)
Run Code Online (Sandbox Code Playgroud)

zip()聚合所有可迭代的元素。zip(x,y)将提供您当前拥有的列表。zip()with*可用于解压缩列表。

此外,由于需要参数,因此无需将元组转换为列表pyplot.plot()array-like

import matplotlib.pyplot as plt
plt.plot(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Har*_*ani 7

你可以尝试list indexing:

data = [[6.0, 0.5], [6.1, 1.0], [6.2, 1.5], [6.3, 2.0], [6.4, 2.5], [6.5, 3.0], [6.6, 3.5], [6.7, 4.0], [6.8, 4.5]]
d1 = [item[0] for item in data]
print d1
d2 = [item[1] for item in data]
print d2
Run Code Online (Sandbox Code Playgroud)

输出:

[6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8]
[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]
Run Code Online (Sandbox Code Playgroud)