x= [0,2,3,5,6];
y= [64,384,1024,4096,384];
以上是我使用的兩個數組。即時通訊試圖元素在Python的方式一起匹配Python,匹配兩個列表的元素
例如:
如果xType
是2我想計算稱爲yType
到y中對應於其值(位置明智)變量。所以我應該得到y = 384
。如果xType = 3
我應該得到1024
如何,我會去這樣做
x= [0,2,3,5,6];
y= [64,384,1024,4096,384];
以上是我使用的兩個數組。即時通訊試圖元素在Python的方式一起匹配Python,匹配兩個列表的元素
例如:
如果xType
是2我想計算稱爲yType
到y中對應於其值(位置明智)變量。所以我應該得到y = 384
。如果xType = 3
我應該得到1024
如何,我會去這樣做
這是如此短暫,甚至堆棧溢出沒有請允許我提出這樣一個簡短的回答:
y[x.index(2)]
這將從y
歸元對應的位置或x
列表中的任何其他給定值。
希望它幫助:)
Ps。確實dictionaries可能是你需要的東西。嘗試使用它們。
謝謝大家,這是我需要的。但我也喜歡字典和地圖的概念。我會研究他們。非常感謝你 – kal
a = {0: 64, 2:384, ...}
查找「在Python地圖」或類似的東西
如果x
中的元素是唯一的,則可以將它們用作dict中的鍵來查找y
中具有相同索引的元素。就像這樣:
x = [0,2,3,5,6]
y = [64,384,1024,4096,384]
y_from_x = dict(zip(x,y))
print y_from_x[2] # prints 384
print y_from_x[3] # prints 1024
如果你想要做大量的查找,這是有用的,但如果你想要做的只是一個查找Tadeck's answer更有效
>>> xymap = dict(zip(x, y))
>>> xymap[2]
384
但是,如果您還需要查找y中的元素,你也需要一個yxmap
。如果您因爲某種原因需要列表(可能是因爲您在程序過程中修改了這些列表),則可以使用i = x.index(2)
,然後使用y[i]
。
如果您的具體目的是產生從你給兩個列表一個dict
,使用zip
:
>>> x = [0,2,3,5,6]
>>> y = [64,384,1024,4096,384]
>>> dict(zip(x, y))
{0: 64, 2: 384, 3: 1024, 5: 4096, 6: 384}
,擺脫這些分號!
如果您不需要映射類型,但只是想創建項目配對,單獨zip
會做:
>>> zip(x, y)
[(0, 64), (2, 384), (3, 1024), (5, 4096), (6, 384)]
聽起來像你想的字典,請參閱http://docs.python。 org/library/stdtypes.html#typesmapping – Dylan