辞書内の文字列キーをintに変換する 質問する

辞書内の文字列キーを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フォーマットファイルからこの辞書を作成したので、より一般的に

{"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()

読み込み時に直接実行する方法はありますか?

ベストアンサー1

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)}

おすすめ記事