Python 通过逐个字符迭代元素来比较列表
我有两个名单的名字,我想比较第一个名字的所有其他名单的名字,看看有多少字母是相似的,但我有麻烦这样做。以下是我迄今为止的代码:Python 通过逐个字符迭代元素来比较列表,python,list,Python,List,我有两个名单的名字,我想比较第一个名字的所有其他名单的名字,看看有多少字母是相似的,但我有麻烦这样做。以下是我迄今为止的代码: listss = ['SAM SMITH', 'JAKE BLAK', 'CONNOR ELLY'] lists2 = ['BEN SMITH'] matching = [] for name in lists2: for ch in name: for names in listss: for chs in names:
listss = ['SAM SMITH', 'JAKE BLAK', 'CONNOR ELLY']
lists2 = ['BEN SMITH']
matching = []
for name in lists2:
for ch in name:
for names in listss:
for chs in names:
if chs == ch:
matching.append(ch)
print(matching)
我想将“BEN SMITH”与列表中的每个名字进行比较,看看有多少个字母彼此相等。例如,将“BEN SMITH”与“SAM SMITH”进行比较,结果是共有5个字母为“SMITH”,前三个字母不相等。有办法吗?我一直在尝试使用for循环来实现它,但还没有成功。您可以使用
for
循环
lists1 = ['SAM SMITH', 'JAKE BLAK', 'CONNOR ELLY']
lists2 = ['BEN SMITH']
for name2 in lists2:
for name1 in lists1:
matching = []
for ch2 in name2:
for ch1 in name1:
if ch1 == ch2 and ch1 != ' ' and ch1 not in matching:
matching.append(ch1)
print(len(matching), matching)
# 5 ['S', 'M', 'I', 'T', 'H']
# 2 ['B', 'E']
# 2 ['E', 'N']
或者您可以使用set()
也许您正在寻找
zip()
函数……但请给出两个列表的示例?问题是什么?问题?所以listss=['SAM SMITH'、'JAKE BLAK'、'CONNOR ELLY']和lists2=['BEN SMITH'],我只想知道是否有办法把BEN SMITH带到listss中,看看它与listss中的每个名字有多少个共同的字母。你的例子想要的结果是什么?请把整个例子放在问题中。约翰·史密斯的结果应该是什么?5还是0?如果为0,则使用zip
lists1 = ['SAM SMITH', 'JAKE BLAK', 'CONNOR ELLY']
lists2 = ['BEN SMITH']
for name2 in lists2:
for name1 in lists1:
matching = (set(name1) & set(name2)) - set(' ')
print(len(matching), matching)
# 5 {'T', 'I', 'S', 'M', 'H'}
# 2 {'B', 'E'}
# 2 {'N', 'E'}