将列表元素地址存储到字典中

2024-04-24 01:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个数据结构-

  • 列表,以及
  • 字典。在

单子里有一串钥匙。字典里有同样的键。对于每个键的值,我希望在列表中存储相应元素的地址。这将实现什么:对于一个键,如果键存在与否,我会查找字典。如果key存在,那么在列表中获取该元素的地址并获取/弹出/追加该元素。在

我的问题:

我应该在字典中存储什么作为每个键的value来访问列表中的特定元素?键的索引将在列表中更改。例如,我可以弹出一个元素并将其插入末尾。因此,字典中所有键的索引都会改变。因此,存储绝对索引不是我想要的。在

列表的示例、对它的某些操作以及结果列表。 L=['1','2','3']

Add '4' to list:             L = ['1', '2', '3', '4']
Pop the last unused element: L = ['2', '3', '4']
Use the element '2':         L = ['3', '4', '2']
Pop the last unused element: L = ['4', '2']
Add '1' to the list:         L = ['4', '2', '1']
Add '5' to the list:         L = ['4', '2', '1', '5']
Use '2' from the list:       L = ['4', '1', '5', '2']

如您所见,元素的位置根据所执行的操作而变化。如果我在列表中存储了元素的地址,那么使用字典将有助于避免搜索列表。在


Tags: thetoadd元素数据结构列表字典unused
3条回答

Index of the list element.

您可以将列表元素的索引存储在字典中,然后使用list[index]来获取该元素。在

示例代码-

lst = [5,4,3,2,1]
dict = {}
for idx, val in enumerate(lst):
    dict[val] = idx
print(dict)
>> {5:0 ,4:1 ,3:2 ,2:3 ,1:4}

检索代码,假设n是要检索的数字-

^{pr2}$

显然,这是不可能的。为了实现这一点,我需要创建类对象并存储上一个和下一个元素的id,就像我们在链表中所做的那样。在

l = ['A', 'B', 'C']
d = {'A': {'value': 'a', 'index': 0},
     'B': {'value': 'b', 'index': 1},
     'C': {'value': 'c', 'index': 2}}
l[d['B']['index']]
'B' # result!

编辑(参见下面的注释)

要创建或更新,请调用:

^{pr2}$

相关问题 更多 >