我的问题与这一问题非常相似,除了我有一个列表字典,而且我有兴趣将键值和每个列表形式中的所有元素都更改string为int。
string
int
因此,例如,我想要字典:
{ '1':['1', '2', '3', '4'] , '2':['1', '4'] , '3':['43','176'] }
成为:
{ 1:[1, 2, 3, 4] , 2:[1, 4] , 3:[43,176] }
这可能吗?
由于我是从JSON格式文件创建此字典的,因此更一般
JSON
{"0": ["1", "2", "3", "4"], "1": ["0", "2", "3", "4", "27", "94", "95", "97", "128", "217", "218", "317"], "2": ["0", "1", "3", "4", "94", "95"], "3": ["0", "1", "2", "4", "377"], "4": ["0", "1", "2", "3", "27", "28"], "5": ["6", "7", "8"], "6": ["5", "7", "8"], "7": ["5", "6", "8", "14", "23", "40", "74", "75", "76", "362", "371", "372"], "8": ["5", "6", "7", "66"], "9": ["10", "11", "12"], "10": ["9", "11", "12", "56", "130", "131"]}
具有以下说明:
json_data = open("coauthorshipGraph.txt") coautorshipDictionary = json.load( json_data ) json_data.close()
有没有一种方法可以在加载时直接进行?
d = {'1':'145' , '2':'254' , '3':'43'} d = {int(k):int(v) for k,v in d.items()} >>> d {1: 145, 2: 254, 3: 43}
用于值列表
>>> d = { '1':['1', '2', '3', '4'] , '2':['1', '4'] , '3':['43','176'] } >>> d = {int(k):[int(i) for i in v] for k,v in d.items()}
在您的情况下:
coautorshipDictionary = {int(k):int(v) for k,v in json.load(json_data)}
要么
coautorshipDictionary = { int(k):[int(i) for i in v] for k,v in json.load(json_data)}