Python - 集合的交集 returns 只有第一个值
Python - Intersection of sets returns only the first value
如果我输入三个名字 (Rolf, Charlie, Mike),friends_nearby_set intersection
return 只会输入第一个 (Rolf)。
如果我输入 (Charlie, Rolf, Mike) friends_nearby_set intersection
return 只有 (Charlie)。
friends_nearby_set intersection
的预期输出应该是 (Rolf, Charlie)。
作者的代码return在我正在观看的视频教程中的正确值。但出于某种原因,对我来说它不是 return 一个合适的交叉路口。有什么解释吗?
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()
这是调试时的截图。
以下是输入名字前的输出输入三个朋友的名字,用逗号分隔(请不要输入space)
python 集可能区分大小写尝试删除逗号和下一个名称之间的 space
这是例子
set_1 = {'Rolf', ' Charlie'}
set_2 = {'Rolf', 'Charlie'}
print(set_1.intersection(set_2))
输出
{'Rolf'}
不是{'Rolf', 'Charlie'}
因为第一个得到space之前。所以当你输入名字时要注意输入他们像 Rolf,Charlie,Mike
并尝试删除输入前后多余的 spaces,如下所示
friends = input('Enter three friends name, separated by commas (no spaces, please): ').strip().split(',')
我在这里看到你的写作方式可能是错误的根源
只需以附加模式而不是写入模式打开文件
nearby_friends_file = open('nearby_friends.txt', 'w')
到
nearby_friends_file = open('nearby_friends.txt', 'a')
因为 w
将覆盖文件,而 a
将追加到文件上
如果我输入三个名字 (Rolf, Charlie, Mike),friends_nearby_set intersection
return 只会输入第一个 (Rolf)。
如果我输入 (Charlie, Rolf, Mike) friends_nearby_set intersection
return 只有 (Charlie)。
friends_nearby_set intersection
的预期输出应该是 (Rolf, Charlie)。
作者的代码return在我正在观看的视频教程中的正确值。但出于某种原因,对我来说它不是 return 一个合适的交叉路口。有什么解释吗?
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()
这是调试时的截图。
以下是输入名字前的输出输入三个朋友的名字,用逗号分隔(请不要输入space)
python 集可能区分大小写尝试删除逗号和下一个名称之间的 space 这是例子
set_1 = {'Rolf', ' Charlie'}
set_2 = {'Rolf', 'Charlie'}
print(set_1.intersection(set_2))
输出
{'Rolf'}
不是{'Rolf', 'Charlie'}
因为第一个得到space之前。所以当你输入名字时要注意输入他们像 Rolf,Charlie,Mike
并尝试删除输入前后多余的 spaces,如下所示
friends = input('Enter three friends name, separated by commas (no spaces, please): ').strip().split(',')
我在这里看到你的写作方式可能是错误的根源 只需以附加模式而不是写入模式打开文件
nearby_friends_file = open('nearby_friends.txt', 'w')
到
nearby_friends_file = open('nearby_friends.txt', 'a')
因为 w
将覆盖文件,而 a
将追加到文件上