从 Python 中的字典中删除键值对列表中的特定值

时间:2021-06-22 18:02:16

标签: python-3.x dictionary

下面是我的字典集

dict = {'city':[('hyderabad','pune','chennai'),'state':[('Telangana','mumbai','tamilnadu')]}

我试图从这个字典的键值对列表中删除前两个字符串,所以它看起来和下面一样

dict = {'city':[('chennai'),'state':[('tamilnadu')]}

我试过了:

for v in dict.values():
    del v[0:1]

但这会删除整个列表而不是前两个索引,需要帮助仅删除键值对中每个值列表的前两个索引

2 个答案:

答案 0 :(得分:3)

您可以使用列表切片:

dct = {
    "city": [("hyderabad", "pune", "chennai")],
    "state": [("Telangana", "mumbai", "tamilnadu")],
}

dct = {k: [l[2:] for l in v] for k, v in dct.items()}
print(dct)

打印:

{
 'city': [('chennai',)], 
 'state': [('tamilnadu',)]
}

答案 1 :(得分:3)

试试这个:

dictionary = {
   'city':[('hyderabad','pune','chennai')],
   'state':[('Telangana','mumbai','tamilnadu')]
}
dict_new = {}
for key, value in dictionary.items():
  dict_new[key] = [value[0][2:],]

print(dict_new)

或者,如果您更喜欢使用理解符号...

dict_new = {key: [value[0][2:],] for key, value in dictionary.items()}
print(dict_new)

输出:

{
   'city': [('chennai',)], 
   'state': [('tamilnadu',)]
}

顺便说一句.. 尽量不要使用保留字,如 dicttuplestr 等,如变量名