[英]How do I convert every element of a nested list in a dict into an int?
因此,我有一個采用CSV並將其轉換為字典的函數。
碼:
import io
opened_statcsv = io.StringIO('''"ID","HP","Attack","Defense","Speed"
6,78,84,78,100
146,90,100,90,90
643,100,120,100,90
''')
def read_stats_file(filename):
sdb={}
#opened_statcsv = open(filename, 'r')
stat_string = opened_statcsv.readlines()
for i in range(1,len(stat_string)):
splitline=stat_string[i].replace("\n",'').split(',')
sdb[splitline[0]] = splitline[1],splitline[2],splitline[3],splitline[4]
print(sdb)
read_stats_file('stats_file2.csv')
當前,我可以創建一個帶有以下問題的字典:每個數字都帶有引號。
例如,我現在的輸出是:{'6':('78','84','78','100'),'643':('100','120','100',' 90')}
何時應為:{6:(78,84,78,100),643:(100,120,100,90)}
有沒有辦法在構建字典之前將所有這些值轉換為int(因為在此之后它們將成為不可變的元組)?
我不允許導入CSV或地圖,建議避免使用.strip或.replace。
在這種情況下,我會建議地圖功能
for i in range(1,len(stat_string)):
splitline=map(int, stat_string[i].replace("\n",'').split(','))
sdb[splitline[0]] = splitline[1],splitline[2],splitline[3],splitline[4]
如評論中所建議,請嘗試:
for i in range(1,len(stat_string)):
splitline=stat_string[i].replace("\n",'').split(',')
sdb[int(splitline[0])) = ( int(splitline[1]),int(splitline[2]),int(splitline[3]),int(splitline[4] )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.