在一行中获取列表的输入的同时制作大小为n的列表

时间:2018-08-28 18:51:25

标签: python python-3.x

我想把列表的输入全部放在同一行。 但是我收到以下错误

> val = [int(input().split())]
> TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

这是我的代码

n=int(input("Enter an input: "))
val=[]
val = val[:n]  
val = [int(input().split())]
print (val)

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则希望使用连续的输入来列出您的列表。这可能是您正在寻找的东西:

ans = None
values = []
while ans != '':
    ans = input('enter value: ')
    if ans.isdigit():
        and = int(ans)
    if ans.strip() == '':
        break
    values.append(and)
print('\n'.join(str(x) for x in values)

这将接受输入,直到输入为空白为止,因为输入返回值始终是字符串,所以将任何数字输入转换为int

或者,您可以直接获取以空格分隔的数字的列表。如果输入非数字值,此方法将失败:

print('enter space-separated numbers')
values = [int(val) for val in input().split()]