Python 中的字典索引?

问题描述 投票:0回答:3

我有一本以下格式的字典: 键(字符串):值(列表[字符串])

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()) 但这导致了不可散列的类型错误。好的,所以我将列表转换为元组并更新,但没有得到我想要的字典。

执行此操作的适当方法是什么?

python dictionary parsing
3个回答
0
投票

使用

enumerate()
将每个索引与键配对,然后将其转换为字典:

dict2 = dict(enumerate(my_dict, 1))

0
投票

定义全局索引变量并使用海象运算符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()}

0
投票

首先,您可能需要获取 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)
© www.soinside.com 2019 - 2024. All rights reserved.