如何在一个集合中存储来自用户的多个输入

2024-03-29 06:05:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是以无序的方式存储来自用户的许多输入。因此,我决定使用set。到目前为止,我掌握的代码是:

a = input()
b = input()
c = input()
d = input()

all = a, b, c, d
print(set(all))

但是,我不想像上面那样重复几次input()。有没有办法做到这一点


Tags: 代码用户目标input方式all无序print
3条回答

您可以将对input()的调用放在理解中:

set(input() for i in range(4))

您可以使用for循环:

all = set()
for _ in range(4):
  all.add(int(input())
print(all)

不要忘记输入会给您一个字符串,所以您应该将其转换为int或任何类型(如果需要的话)

for循环中的“\u1”表示此变量不重要。但是你可以随便取什么名字

如果您只需要一个set,那么您不需要a, b, c, d

all = set()   #or all = {*(),}
for _ in range(4):
    all.add(input())

print(all)

或者

all = {input() for _ in range(4)}

这是考虑到你在新的一行的输入。否则,如果输入以逗号分隔,例如:

all = set(input().split(','))
print(all)

all = {*input().split(',')}
print(all)

如果同时需要a, b, c, d和所有输入,可以执行以下操作:

>>> all = a, b, c, d = {*input().split(',')}
# example
>>> all = a, b, c, d = {1, 2, 3, 4}
>>> all
{1, 2, 3, 4}
>>> a
1
>>> b
2

正如@Tomerikooall(iterable)所指出的,是一种built-in function避免将变量命名为与python构建或关键字相同的变量。 另一点,如果您已经这样做了,为了获得所有人的默认行为,您可以:

>>> import builtins
>>> all = builtins.all
# Or, more conveniently, as pointed out by @Martijn Pieters
>>> del all
  • *用于^{}
  • _用于don't carethrowawayanonymous variable, 因为我们不需要循环中的变量。更多关于这个 here
  • ^{}只是创建空集的一种奇特方式,因为python没有空集文本。建议使用set()

相关问题 更多 >