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