Python-集合的交集只返回第一个值
如果我输入三个名字(Rolf、Charlie、Mike),Python-集合的交集只返回第一个值,python,set,set-intersection,Python,Set,Set Intersection,如果我输入三个名字(Rolf、Charlie、Mike),friends\u Nearly\u\u set交叉点只返回第一个输入(Rolf) 如果我输入(Charlie、Rolf、Mike),则附近的朋友集交叉点只返回(Charlie) friends\u nearly\u set intersection的预期输出应为(Rolf,Charlie) 作者的代码在我正在观看的视频教程中返回正确的值。但出于某种原因,我认为这不是一个正确的十字路口。有什么解释吗 friends = input('En
friends\u Nearly\u\u set交叉点
只返回第一个输入(Rolf)
如果我输入(Charlie、Rolf、Mike),则附近的朋友集交叉点只返回(Charlie)
friends\u nearly\u set intersection
的预期输出应为(Rolf,Charlie)
作者的代码在我正在观看的视频教程中返回正确的值。但出于某种原因,我认为这不是一个正确的十字路口。有什么解释吗
friends = input('Enter three friends name, separated by commas (no spaces, please): ').split(',')
people = open('people.txt', 'r')
people_nearby = [line.strip() for line in people.readlines()]
people.close()
friends_set = set(friends)
people_nearby_set = set(people_nearby)
friends_nearby_set = friends_set.intersection(people_nearby_set)
nearby_friends_file = open('nearby_friends.txt', 'w')
for friend in friends_nearby_set:
print(f'{friend} is nearby! Meet up with them.')
nearby_friends_file.write(f'{friend}\n')
nearby_friends_file.close()
下面是调试期间的屏幕截图
以下是输入姓名前的输出输入三个朋友的姓名,用逗号分隔(请不要用空格) python集可能区分大小写,请尝试删除逗号和下一个名称之间的空格 下面是一个例子
set_1 = {'Rolf', ' Charlie'}
set_2 = {'Rolf', 'Charlie'}
print(set_1.intersection(set_2))
输出
{'Rolf'}
不是{'Rolf','Charlie'}
,因为第一个之前有空格。所以,当你输入名字时,要注意输入它们,如Rolf,Charlie,Mike
并尝试在输入之前和之后删除额外的空格,如下所示
friends = input('Enter three friends name, separated by commas (no spaces, please): ').strip().split(',')
我在这里看到你的写作可能是错误的来源
只需在追加模式而不是写入模式下打开文件
nearear\u friends\u file=open('nearear\u friends.txt','w')
到
nearear\u friends\u file=open('nearear\u friends.txt','a')
因为w
将覆盖文件,而a
将附加到文件上