簡體   English   中英

Python-將字符串鍵轉換為整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM