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'}