gpt4 book ai didi

python - 在字典中寻找模式并制作新字典

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:36 24 4
gpt4 key购买 nike

我有一个可以用 'K' 制作的所有序列组合的列表 和 'M' 长度从 6 到 18。所以,我有组合 包括 "KKKKKK""MMMMMMMMMMMMMMMMMM"。 我还有一本字典,其中的键是 id,值是 不仅用 K 和 M 制作的长序列,还用其他一些制作 对我来说不重要的字符。

小例子:

 com = ["KKKKKK", "KKKKKM", ......, "MMMMMMMMMMMMMMMMMM"]
li = {id1: "KKKKKKHKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM",
id2:"MMKFJDFKFGKJJJJFKKKKKMJKJHFKKKKKK"}

我想在 li 字典中找到不同的组合(值)和 创建一个新字典,其中的键是 li 字典中的 id (键)和值是包含在中找到的组合的列表 li字典的值。对于小例子,输出将是 像这样:

results = {id1: ["KKKKKK", "MMMMMMMMMMMMMMMMMM"], id2: ["KKKKKM", "KKKKKK"] }

我写了下面的代码,但没有给我想要的。

results = {}
for i in com:
if i in li.values():
results[li.keys()] = [i]

最佳答案

您可以使用 re.findall()在字典理解中:

In [11]: {k: re.findall(r'(?:K|M){6,18}', v) for k, v in li.items()}
Out[11]: {'id1': ['KKKKKK', 'MMMMMMMMMMMMMMM'], 'id2': ['KKKKKM', 'KKKKKK']}

r'(?:K|M){6,18}'是一个正则表达式,将匹配 K 的任何子字符串或 M长度为 6 到 18。

关于python - 在字典中寻找模式并制作新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056743/

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