Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-集合的交集只返回第一个值_Python_Set_Set Intersection - Fatal编程技术网

Python-集合的交集只返回第一个值

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

如果我输入三个名字(Rolf、Charlie、Mike),
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
将附加到文件上