a = [{43:123}, {3:103}, {36:103}, {2:102}, {23:100}]
交换一个元素列表为int
我怎样才能提取ID从它当每个键是ID和值表示的多个点。 我试图用这个:
Python的结果是一个列表,但我需要整数类型。例如 print a[2].keys()
结果[36]
和我需要36是int。 THX
a = [{43:123}, {3:103}, {36:103}, {2:102}, {23:100}]
交换一个元素列表为int
我怎样才能提取ID从它当每个键是ID和值表示的多个点。 我试图用这个:
Python的结果是一个列表,但我需要整数类型。例如 print a[2].keys()
结果[36]
和我需要36是int。 THX
访问从该名单的第一个元素:
a[2].keys()[0]
或
next(a[2].iterkeys())
都返回INT 36
。
要获得所有键的列表:
[next(d.iterkeys()) for d in a]
返回[43, 3, 36, 2, 23]
也许你应该你的类型的字典的列表转换成一个简单的字典:
d = {}
for x in a:
d.update(x)
获得{2: 102, 3: 103, 23: 100, 36: 103, 43: 123}
,在那里你可以通过简单的d.keys()
获得所有密钥并获得[3, 2, 43, 36, 23]
,但顺序并不守恒。
正如我在给你的另一个问题的评论作出回应,这是你想要什么:
尝试:
for b in a:
print b.keys()[0]
,将提取的钥匙,所以你最终会打印出:43, 3,36,2,23。如果您想要的值(如123,103,36,102,100),请使用b.values()[0]
。
如果你有一个结果列表[36]和你想获得的项目,只需下标元素0
即只追加[0]
你的表达式,得到了你[36]去列表中的第一个(也是唯一的)项目。
所以,你的情况:
print a[2].keys()[0]
你有类型的字典列表,因此keys
方法会给你的字典的钥匙,因为它们都只有一个入口,使用[0]
引用它:
>>> [d.keys()[0] for d in a]
[43, 3, 36, 2, 23]
试试这个:
def getKeyAtIndex(a, idx):
return a[idx].keys()[0]
,并调用它是这样的:
print getKeyAtIndex(a, 2)
> 36
作为一个侧面说明 - 这就是你已经张贴具有相同数据结构中的第二个问题 - 字典列表,其中每个字典保持了与单个值的单个密钥。这没有多大意义,在这种情况下,你通过使用字典没有任何好处。也许单个字典会是一个更好的主意?像这样:
{43:123, 3:103, 36:103, 2:102, 23:100}
或者可能是元组列表?像这样:
[(43, 123), (3, 103), (36, 103), (2, 102), (23, 100)]
我想你的意思'的项目中:打印item.keys [0]'' –
我+ = 1' - >它不是C++ ..没有必要的 – WeaselFox
@JoelCornett不,他想要钥匙。此外,a不是字典,也没有.items()方法 – HodofHod