[英]Python - converting string key to integer
我有以下順序的字典。 該字典是使用from collections import defaultdict
動態生成的
Ref = defaultdict(<type 'list'>, {'344': [('0', '0', '136'),
('548', '136', '137'),
('548', '136', '6')],
'345': [('0', '0', '136'), ('548', '136', '137'),
('548', '136', '6'),
('742', '136', '6')]}
我試過的
從這里
Ref = {int(k):[int(i) for i in v] for k,v in Ref.items()}
但我得到一個錯誤:
TypeError: int() argument must be a string or a number, not 'tuple'
我想要的是:
我想將字符串中的所有鍵和值轉換為整數,例如
Ref = defaultdict(<type 'list'>, {344: [(0, 0, 136),
(548, 136, 137),
(548, 136, 6)],
345: [(0, 0, 136), (548, 136, 137),
(548, 136, 6),
(742, 136, 6)]}
您的值是列表,項目是元組,您需要將元組項目轉換為int
,您可以使用map
函數:
Ref = {int(k):[map(int,i) for i in v] for k,v in Ref.items()}
如果您使用的是python 3,則可以在tuple
使用生成器表達式:
Ref = {int(k):[tuple(int(t) for t in i) for i in v] for k,v in Ref.items()}
同樣,由於map
如果要使結果為元組返回一個列表,則也可以使用此配方。
您正在嘗試轉換鍵和值中的元組 。 您的問題標題表明您只想轉換密鑰:
Ref = {int(key): value for key, value in Ref.items()}
這使價值保持不變。 請注意,這將defaultdict
實例替換為新的Plain dict
對象。
您的輸出表明您還希望將元組中的值轉換為整數。 也遍歷元組:
Ref = {int(key): [tuple(int(i) for i in t) for t in value]
for key, value in Ref.items()}
現在,在列表中值的每個元組也被處理,但在元組的每個字符串轉換為整數,而不是試圖整個的元組對象轉換為整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.