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