如何用Set存储用户多份输入并避免重复调用input()
解决重复调用
input()的问题 嗨,我来帮你搞定这个问题!你不想反复写input()的想法太对了,这样代码不仅冗余,后期修改输入次数也麻烦。这里有几种简洁的实现方式,你可以根据自己的需求选:
方法1:用循环指定输入次数
如果你明确知道需要输入的次数(比如你原来的4次),用循环批量获取输入是最直接的:
# 定义需要输入的次数,想改次数只需要调整这个值 input_times = 4 input_set = set() for _ in range(input_times): # 每次循环获取一次输入,添加到集合中 input_set.add(input()) print(input_set)
这种方式灵活性很高,不管是4次还是10次,只需要修改input_times的数值,不用重复写input()语句。
方法2:一次性输入所有内容(用分隔符分割)
如果用户可以一次性把所有内容用分隔符(比如空格、逗号)分开输入,那可以用字符串分割的方式处理:
# 示例:用空格分隔输入内容,比如输入 "apple banana apple orange" all_input = input("请输入多个内容,用空格分隔:") input_set = set(all_input.split()) print(input_set)
要是你想用逗号作为分隔符,只需要把split()改成split(',')就行。如果担心输入里有多余的空格,可以再加一步清理:
input_set = set(item.strip() for item in all_input.split(','))
方法3:读取任意多行输入直到结束
如果不确定输入的次数,想让用户输入任意多行直到手动结束(终端按Ctrl+D,Windows按Ctrl+Z),可以借助sys.stdin实现:
import sys # 逐行读取输入,去掉每行首尾空白后存入集合 input_set = set(line.strip() for line in sys.stdin) print(input_set)
这种方式适合输入次数不固定的场景,用户想输多少行就输多少行。
内容的提问来源于stack exchange,提问作者Ololade
相关产品推荐
相关产品推荐

