gpt4 book ai didi

python - 试图查看列表中的一项是否在另一项中

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:58 27 4
gpt4 key购买 nike

所以这里我有两个列表

cons=['qwe','wer','ert','rty','tyu','yui','uio','iop','asd','sdf','dfg',
'fgh','ghj','hjk','jkl','zxc','xcv','cvb','vbn','bnm']

print([i for e in alphabet for i in cons if e in i])

字母表是用户输入的

如果用户键入,例如,qwe,那么 shell 将打印 'qwe','wer','ert','rty'(所有至少有一个字母相似)但我只希望它打印 cons 中的项目,前提是输入中的所有项目都与该项目相似。例如,打印 'qwe'

我该怎么做?

编辑:为了更清楚,如果我输入“qwer”,我希望输出为“qwe”和“wer”

最佳答案

cons=['qwe','wer','ert','rty','tyu','yui','uio','iop','asd','sdf','dfg',
'fgh','ghj','hjk','jkl','zxc','xcv','cvb','vbn','bnm']

更新(基于 OP 评论)如果您需要 cons 中的字符串与 alphabet 的子串完全匹配,那么这段代码只是检查字符串是否来自 consalphabet 的子串(完全匹配),如果是,则包含它:

print([sub for sub in cons if sub in alphabet])

案例:alphabet = 'qwer' , 输出 = ['qwe', 'wer']

但是,根据 OP,此测试检查 cons 的字符串中的所有字母是否存在于 alphabet (不一定按照确切的顺序和频率)。这使用 all()返回 True 的方法如果传递的所有参数都是 True .

print([sub for sub in cons if all(let in alphabet for let in sub)])

解释:let in alphabet根据每个字母 let 是否返回 True 或 False , 在用户输入字符串中,alphabet .这是针对 cons 的子字符串中的每个字母执行的。 , for let in sub .因此,用户输入的每个字母都将被检查,并且只会评估为 True如果来自 sub 的所有字母字符串在字母表中。如果此检查的计算结果为 True,则子字符串将包含在结果中并打印出来。如果来自 con 的子字符串,则此函数有效与用户输入的长度不同,alphabet .

如果字母表 = 'er' , 输出 = [] (没有字符串包含 alphabet 中的所有字母)

如果字母表 = 'qwer' , 输出 = ['qwe', 'wer']

关于python - 试图查看列表中的一项是否在另一项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46558153/

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