如何根据字符Python的位置从字典中删除键及其值

时间:2017-08-29 04:59:56

标签: python dictionary

根据我的阅读,字典是无序的'所以找不到基于位置的关键及其值是不可能的。是否有另一种方法可以执行此操作并返回相同的字典,而不使用键和键的值基于所选位置。 我想将变量设置为键的位置,以便用户可以选择要删除的键以及键值(可以是键名和值的两倍)。这个字典中的键和值是字符串,而不是整数,每次运行脚本时都会更改,因为我组合的两个字符串因用户输入而不同。

解决的例子: 收据= {'牛肉':'铸造'牛肉':'筹码''鸡肉':&# 39;芯片'}

3 个答案:

答案 0 :(得分:1)

如何按位置移除键

没有用于索引词典的直接API,但您可以列出键,按位置选择键,然后将其从词典中删除。

def remove_key(d, i):
    'Mutate the dictionary to remove i-th key'
    keys = d.keys()
    del d[keys[i]]
    return d

“双升”的具体案例

如果数据加倍,字典将消除重复数据,然后才能到达对。因此,数据需要存储为键/值对的列表而不是字典。这也将允许您按位置直接删除:

>>> receipt = [('beef', 'mint'), ('beef', 'chips'), ('chicken', 'chips')]
>>> del receipt[1]
>>> receipt
[('beef', 'mint'), ('chicken', 'chips')]

答案 1 :(得分:0)

您可以做的是,对键进行排序并使用该列表中键的索引来删除键中的键值。见下面的案例。即兴在您的计划中使用。

mydict = {'c':'qwe','a':'asd','b':'acb'}
for key in sorted(mydict.keys()):
    print(key,":",mydict[key])

这将打印 -

a:asd
b:acb
c:qwe

答案 2 :(得分:-1)

您认为字典是什么:receipt = {'beef': 'mint', 'beef':'chips', 'chicken':'chips'}不是字典,因为字典不能有多个具有相同键的值。

由于dicts不能使用相同的键具有多个值,因此根据位置删除值是没有意义的。