有两个最喜欢的运动列表。一个是自动化的,一个是用户输入的。找到十字路口



这个赋值有一个内置的IDLE,所以它必须处理它。我不知道版本更新,但我认为它是2.1-2.7我尝试了set_a & set_bset.intersect,但我使用的软件不支持。我将尝试合并if和for循环。我有一个大致的想法,取每个列表元素并将其与其他元素进行比较,直到所有元素都进行了比较,所以它有任何相似之处,只需说明有多少相似之处以及相似之处是什么。

这是代码:

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

def-main((:

myFavSports = ["Gymnastics", "High Jumping", "Table Tenis", "Golf", "Ice Skating"]
length = len(myFavSports)
print(" My Favorite Sports")
print("--------------------")
for n in range(0, len(myFavSports)):
print(str(n + 1) +". "+ myFavSports[n] + "!")

favSport1 = input("What is your first favorite sport?")
favSport2 = input("What is your second favorite sport?")
favSport3 = input("What is your third favorite sport?")
favSport4 = input("What is your fourth favorite sport?")
favSport5 = input("What is your fifth favorite sport?")
yourFavSports = [favSport1, favSport2, favSport3, favSport4, favSport5]

print("")
print(" Your Favorite Sports")
print("----------------------")
for n in range(0, len(yourFavSports)):
print(str(n + 1) +". "+ yourFavSports[n] + "!")

in_both_lists = []
for myFavSports in myFavSports:
for yourFavSports in yourFavSports:
if myFavSports == yourFavSports:
in_both_lists.append(myFavSports)
print "We both love {}: {}".format(
len(in_both_lists),
", ".join(in_both_lists),
)

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]

您的in_both_lists循环正在重新定义myFavSportsyourFavSports,因为您在循环的每一侧都使用相同的变量名。

Python循环语法定义为:

for item in list:

当前您正在使用

for list in list:

因此CCD_ 6被重新定义为CCD_。

最新更新