在Python 3.6中,如何将未知字符串转换为集合?

时间:2017-12-04 19:21:13

标签: python input set

我希望程序读取输入。除非输入是“HELP”,否则它由几个由空格分隔的整数组成。我不知道提供的整数数量。

我想将整数放在一个集合中。

这是我目前使用的代码,但需要很长时间才能找到更快的方法。

nextInput = input()
while nextInput != "HELP":
    testString = set()
    testString1 = nextInput.split()
    for j in range(0, len(testString1)):
        k = int(testString1[j])
        testString.add(k)
    nextInput = input()

2 个答案:

答案 0 :(得分:1)

请注意,set()接受一个iterable as参数,因此您可以用

替换整个body
testString = set(nextInput.split())

编辑:如果您需要一组数字(原始问题中不清楚,特别是变量名称为“testString”;我将更改变量的名称为了我自己的理智,用

代替那一行
numset = set(int(_) for _ in nexInput.split())

当然,在此之下,您应该添加该行以请求下一个输入。

当然,如果你想要完全pythonic,你只需要输入一次,你会这样做:

while True:
  nextInput = input()
  if nextInput == 'HELP':
    break
  numset = set(int(_) for _ in nexInput.split())

答案 1 :(得分:0)

试试这个:

# Create empty set
testString = set()

while True:

    # Ask for input
    nextInput = input()

    # Break if user writes help
    if nextInput.upper() == 'HELP':
        break

    # Try to update the set with ints else print Error!
    try: 
        testString.update(map(int,nextInput.split()))
    except ValueError:
        print("Error with input!")