Python 有两个最喜欢的运动的列表。一个';s自动化和一';用户输入。找到十字路口

Python 有两个最喜欢的运动的列表。一个';s自动化和一';用户输入。找到十字路口,python,for-loop,user-input,set-intersection,Python,For Loop,User Input,Set Intersection,这个任务有一个内置的空闲,所以它必须处理它。 我不知道版本更新,但我假设它是2.1-2.7 我尝试了set\u a&set\u b和set.intersect功能,但我使用的软件不支持这一功能。 我将尝试合并if和for循环。 我有一个粗略的想法,把每个列表元素和其他元素进行比较,直到所有元素都被比较,所以它有任何相似之处,只要说有多少相似之处,以及相似之处是什么 代码如下: #Khushi Desai #7/20/18 #Purpose: To see if me and the user h

这个任务有一个内置的空闲,所以它必须处理它。 我不知道版本更新,但我假设它是2.1-2.7 我尝试了
set\u a&set\u b
set.intersect
功能,但我使用的软件不支持这一功能。 我将尝试合并if和for循环。 我有一个粗略的想法,把每个列表元素和其他元素进行比较,直到所有元素都被比较,所以它有任何相似之处,只要说有多少相似之处,以及相似之处是什么

代码如下:

#Khushi Desai
#7/20/18
#Purpose: To see if me and the user have any similarities
def main():

main()


此外,我尝试了这种方法,但它只是比较第一种方法

您的解决方案对迭代中的项和列表的名称使用相同的变量名。要修复解决方案,您可以执行以下操作:

in_both_lists = []
for mySport in myFavSports:
    for yourSport in yourFavSports:
        if mySport == yourSport:
            in_both_lists.append(mySport)
或者您可以简单地执行以下操作:

in_both_lists = [sport for sport in yourFavSports if sport in myFavSports]

两个列表中的
循环都在重新定义
myFavSports
yourFavSports
,因为在循环的每一侧使用相同的变量名

Python循环语法定义为:

for item in list:
当前您正在使用

for list in list:

因此,
列表
在您的
for
中被重新定义为

的值:您在
中的
两侧使用了相同的变量名-这是一个问题。顺便说一句,问题标题通常应该描述您的问题(即代码有什么问题),而不是您编写代码要解决的问题。事实上,有了正确的答案,问题中包含的代码是说明问题所需的最小可能的东西,因此在最小化过程中应该删除其他上下文(如遇到问题时您试图回答的作业)。非常感谢。我现在完全明白了。谢谢你的回复。我会试试这个,然后再给你回复。我用了另一个答案代码,它成功了。这种对我错误的背景理解对我帮助很大。我不知道它这么简单。很高兴我能帮上忙:)有时候,理解你正在编写的代码比简单地让代码运行更有用。另外,你介意把两个答案中的一个标记为正确吗?这样,未来的用户可以很容易地判断使用哪种解决方案。感谢您提供了详细的代码。但是我没有第二行代码。我使用了您提供的代码,它工作正常。非常感谢你。我没有意识到这个错误如此之小。这两种解释我都喜欢。你们是最棒的!第二种方法是列表理解。在这个链接中,你可以有一些例子来更好地理解
for list in list: