如何从python3中的单行输入读取整数数组

sac*_*024 5 python arrays input list python-3.2

我想从python3中的单行输入读取一个整数数组.例如:将此数组读取到变量/列表

1 3 5 7 9
Run Code Online (Sandbox Code Playgroud)

我试过了什么

  1. arr = input.split(' ')但这并没有将它们转换为整数.它创建字符串数组

  2. arr = input.split(' ')

    for i,val in enumerate(arr): arr[i] = int(val)

第二个是为我工作.但我正在寻找一个优雅的(单线)解决方案.

Sau*_*tro 24

用途map:

arr = list(map(int, input().split()))
Run Code Online (Sandbox Code Playgroud)

只是添加,在Python 2.x中你不需要调用list(),因为map()已经返回一个list,但是在Python 3.x "迭代迭代的许多进程返回迭代器本身".

必须使用()括号对添加此输入才能遇到错误.这适用于3.x和2.x Python


har*_*nds 5

使用列表推导可以实现同样的效果:
以下是ideone的示例:

arr = [int(i) for i in input().split()]

如果您使用的是Python 2,则应该使用它raw_input().