繁体   English   中英

Python 字典,其中值是列表,如何从每个列表值中删除第 X 项

[英]Python dictionary where values are lists, how to remove Xth item from every list value

我有以下形式的字典:

dict_one =  { key2: [val1, val2, val3], key2: [val1, val2, val3] }

我想从字典中的每个元素中删除 'val3'。 我相信这应该可以通过 for 循环实现,但我似乎无法正确理解。 我尝试了以下方法:

for lst in dict_one:
    dict_one.pop(dict_one[lst][2])

我相信,这是为了删除键和值。 它返回了“keyerror”错误消息。 dict_one.remove() 显然不起作用,因为它适用于列表。 看起来我想做的事情应该相对简单,但我似乎遗漏了一些东西。

(仅供参考,如果我只想删除“val3”项目的子集,我可以按照这里的方法: 删除列表字典中的元素

首先,从列表中删除一个项目:

l = [val1, val2, val3]
l.remove(val3)

现在遍历字典中的列表:

dict_once = {key1: [val1, val2, val3], key2: [val1, val2, va3]}
for inner_list in dict_one.values():
    inner_list.remove(val3)

或者,使用键循环:

for key in dict_one:
    dict_one[key].remove(val3)

要从字典列表中获取特定项目:

for lst in dict_one:
    print(dict_one.get(lst)[item_num])

修改条目:

for lst in dict_one:
    dict_one[lst] = new_value
    print(dict_one.get(lst))

您想要对列表进行的更改:

dict_one =  { 'key2': ['val1', 'val2', 'val3'], 'key3': ['val1', 'val2', 'val3'] }

for lst in dict_one:
    dict_one[lst] = dict_one.get(lst)[:-1]
    print(dict_one.get(lst))

使用dict理解的一种方法:

dict_one = {'key2': ['val1', 'val2', 'val3'], 'key3': ['val1', 'val2', 'val3']}
dict_two = {k: v[:-1] for k, v in dict_one.items()}
print(dict_two)

Output:

{'key2': ['val1', 'val2'], 'key3': ['val1', 'val2']}
dict_one = {"key2": ["val1", "val2", "val3"], "key3": ["val1", "val2", "val3"]}
for lst in dict_one:
    dict_one[lst] = dict_one.get(lst)[:-1]
print dict_one

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM