gpt4 book ai didi

python - 如何从字典值中删除列表项?

转载 作者:太空狗 更新时间:2023-10-30 02:15:46 25 4
gpt4 key购买 nike

我有一个包含主机名键和列表值的主机字典。我希望能够从每个值的列表中删除 fruit_ 的任何项目。

host = { 
'abc.com': ['fruit_apple', 'fruit_orange', 'veg_carrots'],
'123.com': None,
'foo.com': ['fruit_tomatoes', 'veg_potatoes']
}

for v in host.values():
if v is not None:
for x in v:
try:
# creating my filter
if x.startswith('fruit_'):
# if x finds my search, get, or remove from list value
host(or host.value()?).get/remove(x)# this is where i'm stuck
print(hr.values(#call position here?)) # prove it
except:
pass

我被评论区困住了,我觉得我错过了另一个迭代(某处有新列表?),或者我不明白如何写回列表值。任何方向都会有所帮助。

最佳答案

从列表中过滤项目的更好方法是使用带有过滤条件的列表理解并创建一个新列表,如下所示。

host = {
'abc.com': ['fruit_apple', 'fruit_orange', 'veg_carrots'],
'123.com': [None],
'456.com': None,
'foo.com': ['fruit_tomatoes', 'veg_potatoes']
}


def reconstruct_list(vs):
return vs if vs is None else [
v for v in vs if v is None or not v.startswith('fruit_')
]


print({k: reconstruct_list(vs) for k, vs in host.items()})

输出

{'abc.com': ['veg_carrots'], '123.com': [None], '456.com': None, 'foo.com': ['veg_potatoes']}

在这种特殊情况下,列表的各个值被过滤,并使用字典理解创建一个新的字典对象。

关于python - 如何从字典值中删除列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48395051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com