所以我有一个带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)}
有没有办法在构建字典之前将所有这些值转换为整数(因为它们之后变成了不可变的元组)?
我不允许导入CSV或地图,建议避免使用.strip或.replace。
答案 0 :(得分:1)
在这种情况下,我会建议map功能
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]
答案 1 :(得分:0)
正如评论中所建议的那样尝试:
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] )