gpt4 book ai didi

Python - 如何从列表中删除特定单词?

转载 作者:行者123 更新时间:2023-11-28 22:42:39 25 4
gpt4 key购买 nike

我有一个这样的列表:

 defaultdict(<class 'list'>, {'Web': ['site: www.domain.com'], 'Phone': ['(111) 222-333', '(222) 333-444'], 'VAT': ['987654321'], 'Fax': ['(444) 555-666', '(777) 888-999'], 'E-mail': ['adress: mail@domain.com', 'address: mail2@domain.com'], 'ID': ['number:1234567890']})

我想清理像这样的词:site:, adress: number:

输出应该是:

 defaultdict(<class 'list'>, {'Web': ['www.domain.com'], 'Phone': ['(111) 222-333', '(222) 333-444'], 'VAT': ['987654321'], 'Fax': ['(444) 555-666', '(777) 888-999'], 'E-mail': ['mail@domain.com', 'mail2@domain.com'], 'ID': ['1234567890']})

我知道我可以从特定列表项中删除单词,例如:

for em in d["E-mail"]:
print(em.replace("address: ","",1))

但我正在寻找可以清理整个列表的东西。

最佳答案

您只需要 : 之后的子字符串,所以如果字符串中没有 :,要么拆分会得到子字符串,要么什么也不会被删除:

for k,v in d.items():
d[k] = [s.split(":", 1)[-1].lstrip() for s in v ]

print(d)

输出:

{'E-mail': ['mail@domain.com', 'mail2@domain.com'], 'Phone': ['(111) 222-333', '(222) 333-444'], 'ID': ['1234567890'], 'Web': ['www.domain.com'], 'VAT': ['987654321'], 'Fax': ['(444) 555-666', '(777) 888-999']}

使用 [-1] 作为索引意味着我们要么得到两个中的第二个,要么得到唯一的字符串(如果没有拆分)。我们还需要 lstrip 拆分后子字符串中的任何前导空格。

您还可以应用与将数据添加到 defaultdict 相同的逻辑,以避免在已经分配了 dict 值后必须对其进行迭代和更改。

关于Python - 如何从列表中删除特定单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31500594/

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