a = [{43:123}, {3:103}, {36:103}, {2:102}, {23:100}]
当每个键都是 id 并且 value 表示多个点时,我如何从中提取 id 。我试过用这个:
for b in a:
print a[i].keys()
i+=1
Python 结果是一个列表,但我需要整数类型。例如
print a[2].keys()
结果[36]
,我需要 36,它是 int。谢谢
a = [{43:123}, {3:103}, {36:103}, {2:102}, {23:100}]
当每个键都是 id 并且 value 表示多个点时,我如何从中提取 id 。我试过用这个:
for b in a:
print a[i].keys()
i+=1
Python 结果是一个列表,但我需要整数类型。例如
print a[2].keys()
结果[36]
,我需要 36,它是 int。谢谢
访问此类列表中的第一个元素:
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}
,您可以通过 simpled.keys()
和 getting获取所有密钥[3, 2, 43, 36, 23]
,尽管顺序不守恒。
>>> [next(iter(d)) for d in a]
[43, 3, 36, 2, 23]
您有一个字典列表,因此该keys
方法将为您提供字典的键,并且由于它们都只有一个条目,请使用[0]
它来引用它:
>>> [d.keys()[0] for d in a]
[43, 3, 36, 2, 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]
尝试这个:
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)]