2017-04-08 107 views
0

我正在做这个小python项目,你输入你想输入多少次迭代(两个集合),并检查每对是否相似。如何比较输入[0]和输入[1]以查看它们是否相似?

inputs = [] 
iterations = int(input()) 
loop_counter = 0 
printNum = 0 

while loop_counter<iterations*2: 
    currentInput = input() 
    inputs.append(currentInput) 
    loop_counter += 1 
    print(inputs[printNum]) 
    printNum+=1 

所以,我想是这样的:

if(inputs[0] similar inputs[1]): #code here 
+0

只有单词会被移动或什么?我的意思是,在你分享Aditi答案评论的例子中,只有这些词语发生了变化。我有没有得到那个权利? –

+0

“相似”是什么意思?请在你的问题的正文中解释。 –

回答

2

如果类似的要检查它们是否相等
你一个简单地做它用:

if inputs[0]==inputs[1]: 
    #your code 

对于您可以按照此相似度商数:

set1 = set(inputs[0].split(' ')) 
set2 = set(inputs[1].split(' ')) 
if set1 == set2: 
    #your code 

比较“本兄弟”和“奔伴侣”

i1= inputs[0].split() 
i2 = inputs[1].split() 
for ii in i1: 
    if ii in i2: 
     print("test!") 
+0

问题在于它们都需要相同。例如,如果输入[0] ==“mt bra”和输入[1] ==“bra mt”,我希望这两个比较,它应该返回相似。 –

+0

在这里,当你分割一个字符串列表并将它们转换为字符串时,你会得到'TypeError:unhashable type:'list'' error! –

+0

为什么你必须将其转换回字符串?输入[0]和输入[1]具有原始字符串 – Aditi

0

基本上可以排序的分裂字符串(由空间分割 - 默认的行为),然后比较它们!

sorted(input[0].split())==sorted(input[1].split()) 

例,

>>> input=['know it','it know'] 
>>> sorted(input[0].split())==sorted(input[1].split()) 
True 

编码快乐!

相关问题