d={0: [(78.65, 89.86),
(28.0, 23.0),
(63.43, 9.29),
(66.47, 55.47),
(68.0, 4.5),
(69.5, 59.0),
(86.26, 1.65),
(84.2, 56.2),
(88.0, 18.53),
(111.0, 40.0)], ...}
如何創建兩個列表,這樣y
需要每個元組的第一個元素和x
採取第二,爲每個密鑰在d?
在上面的例子中(僅key=0
所示),這將是:
y=[78.65, 28.0, 63.43, 66.47, 68.0, 69.5, 86.26, 84.2, 88.0, 111.0]
x=[89.86, 23.0, 9.29, 55.47, 4.5, 59.0, 1.65, 56.2, 18.53, 40.0]
我的嘗試是錯誤的(我試過x
只列出):
for j,v in enumerate(d.values()):
x=[v[i[1]] for v in d.values() for i in v]
因爲:
TypeError Traceback (most recent call last)
<ipython-input-97-bdac6878fe6c> in <module>()
----> 1 x=[v[i[1]] for v in d.values() for i in v]
TypeError: list indices must be integers, not numpy.float64
這是怎麼回事?
不知道如果字典包含兩個元素會發生什麼...... –
你是指'key = 1'的另一個元組列表?在這種情況下,並不多,因爲我想在for循環中提取這兩個列表,以便在每次迭代時它們都是不同的。這回答了你的問題了嗎? – FaCoffee
'x = [i [1] for v in d.values()for i in v]'應該適用於您的片段 – schwobaseggl