我有一本以下格式的字典: 键(字符串):值(列表[字符串])
my_dict = {'Foo': ['Lorem', 'Ipsum', 'Dolor', 'Baz'], 'Bar': ['Amet', 'Consectetur'], 'Baz': ['...'], 'Lorem': ['...'], & so on...}
我想通过索引每个键来访问这个字典,例如 Foo = 1,Bar = 2,Baz = 3,Lorem = 4,Ipsum = 5..等等
我想通过索引选择一个键,然后选择一个值,然后转到该索引,依此类推。
例如:如果我选1,我会去Foo。然后从 Foo 出发,我将前往 Lorem、Ipsum、Dolor 或 Baz。
我实质上是在创建另一个字典 dict2,它将保存许多整数作为新键,并将 dict1 中的键作为其值。
首先我尝试调用 dict2.update({int_list:dict1.keys()) 但这导致了不可散列的类型错误。好的,所以我将列表转换为元组并更新,但没有得到我想要的字典。
执行此操作的适当方法是什么?
使用
enumerate()
将每个索引与键配对,然后将其转换为字典:
dict2 = dict(enumerate(my_dict, 1))
定义全局索引变量并使用海象运算符doc在字典理解中递增它。如果键应从 1 开始,请将全局索引设置为 0。
my_dict = {'Foo': ['Lorem', 'Ipsum', 'Dolor', 'Baz'], 'Bar': ['Amet', 'Consectetur'], 'Baz': ['...'], 'Lorem': ['...']}
i = 0 # global index
d = {(i:=i+1): v for v in my_dict.values()}
首先,您可能需要获取 dic.items() 并循环,您将需要 list 来附加另一个列表的值,这是代码,如下:
my_dict = {'Foo': ['Lorem', 'Ipsum', 'Dolor', 'Baz'],
'Bar': ['Amet', 'Consectetur']}
key_list = list()
dic = dict()
total = list()
for key, groups in my_dict.items():
joined_list = my_dict['Foo'] + my_dict['Bar']
print(f'{key}: {groups}')
key_list.append(key)
dic[key] = key.count(key)
s = key_list.index(key) + 1
dic[key] = s
for index, value in enumerate(joined_list):
# print(index, value)
total.append(index)
dic[value] = index + 1 + s
print(dic)
d = dict(sorted(dic.items(), key=lambda item: item[1]))
print(d)