Python列出了相似性
我希望得到两个列表中相似字符的数量。 第一个清单是:Python列出了相似性,python,list,Python,List,我希望得到两个列表中相似字符的数量。 第一个清单是: list1=['e', 'n', 'z', 'o', 'a'] 第二个列表将是一个单词用户输入,变成一个列表: word=input("Enter word") word=list(word) 我将在下面运行此函数以获取两个列表中的相似数: def getSimilarItems(word,list1): counter = 0 for i in list2: for j in list1
list1=['e', 'n', 'z', 'o', 'a']
第二个列表将是一个单词用户输入,变成一个列表:
word=input("Enter word")
word=list(word)
我将在下面运行此函数以获取两个列表中的相似数:
def getSimilarItems(word,list1):
counter = 0
for i in list2:
for j in list1:
if i in j:
counter = counter + 1
return counter
我不知道该怎么做的是如何获得列表中每个项目的相似数(如果一个项目是一个字符,那么它将是0或1)
非常感谢您的帮助:)
例如:
如果用户输入的单词是afez:
我希望运行该函数:
wordcount= getSimilarItems(word,list1)
并将其作为输出:
>>>1 (because a from afez is in list ['e', 'n', 'z', 'o', 'a'])
>>>0 (because f from afez isn't in list ['e', 'n', 'z', 'o', 'a'])
>>>1 (because e from afez is in list ['e', 'n', 'z', 'o', 'a'])
>>>1 (because z from afez is in list ['e', 'n', 'z', 'o', 'a'])
我不知道怎么做的是如何得到相似的数量
对于列表中的每个项目(将0或1作为
word将被拆分为一个列表,其中一项是字符)
我假设不计算列表中的项目数,而是希望获得每个元素的单独匹配结果
为此,您可以使用字典或列表,并从函数中返回它们
假设输入与列表长度相同
def getSimilarItems(list1,list2):
counter = 0
list = []
for i in list2:
for j in list1:
if i in j:
list.append(1)
else:
list.append(0)
return list
根据你的编辑
def getSimilarItems(list1,list2):
counter = 0
for i in list2:
if i in list1:
print('1 (because )'+i +' from temp_word is in list'+ str(list1))
else:
print("0 (because )"+i +" from temp_word isn't in list" + str(list1))
如果你想要一个更精简的版本(我不太擅长列表理解),请看Julien的答案。听起来你只是想要:
def getSimilarItems(word,list1):
return [int(letter in list1) for letter in word]
请添加示例输入/输出,以明确您需要的输出是<代码>[1,0,1,1]?是的,因为我想比较列表['a'、'f'、'e'、'z']和['e'、'n'、'z'、'o'、'a']以及a、e和z在第二个列表中,所以输出为1,而f不是0,所以输出为0。您不妨将其压缩为:
定义GetSimilItems(列表1,列表2):为列表1中的j返回[int(I in j)