将由空格分隔的整数字符串更改为int列表

Spo*_*ock 30 python string int list

我如何制作类似的东西

x = '1 2 3 45 87 65 6 8'

>>> foo(x)
[1,2,3,45,87,65,6,8]
Run Code Online (Sandbox Code Playgroud)

我完全陷入困境,如果按指数进行,那么超过1位的数字将会被分解.请帮忙.

tij*_*jko 40

您可以将列表推导.split()方法结合使用:

x = [int(i) for i in x.split()]
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用map:

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

这将创建一个listint的,如果你想整数.

或者只是.split()用于字符串列表:

x = x.split()
Run Code Online (Sandbox Code Playgroud)

如果要创建列表 str


Shi*_*ngh 5

无需担心,因为python提供了split()函数将字符串更改为列表。

x='1 2 3 4 67 8 9'
x.split()
Run Code Online (Sandbox Code Playgroud)

['1','2','3','4','67','8']

或者如果您想以整数形式输出,则可以使用map函数

map(int ,x.split(' '))
Run Code Online (Sandbox Code Playgroud)

[1、2、3、4、67、8]

  • 注意:map()仅在Python 2中返回一个列表。在Python 3中,返回一个迭代器对象。如果必须有列表,请使用`list(map(int,x.split()))`。 (2认同)