将字符串转换为列表并将元素转换为整数

时间:2015-12-21 22:28:21

标签: python string list

所以我有一个字符串,我想将其转换为列表

输入:

"123|456|890|60"

输出:

[123,456,890,60]

另一个例子,输入:

"123"

输出:

[123]

这是我到目前为止所做的。

A=input()
n=len(A)
i=0
z=0
K=""
Y=[0]*n
while(i<n):
  if(A[i]=="|"):
    Y[z]=int(Y[z])
    j=+1
    K=""
  else:
    Y[z]=K+A[i]
  i+=1
print(Y)

3 个答案:

答案 0 :(得分:4)

感谢您在尝试中进行编辑。拆分字符串并将字符串转换为整数是非常常见的任务,Python内置了实现它们的工具。

str.split通过给定的分隔符将字符串拆分为列表。 int可以将字符串转换为整数。您可以使用map将函数应用于列表的所有元素。

>>> map(int, "123|456|890|60".split('|'))
[123, 456, 890, 60]

答案 1 :(得分:0)

使用list comprehension

<强>代码:

[int(a) for a in "123|456|890|60".split("|")]

<强>输出:

[123, 456, 890, 60]

备注:

  • 拆分在此处创建list of strings,其中当前字符串在|
  • 处拆分
  • 我们循环遍历列表并将字符串转换为int

答案 2 :(得分:0)

这是一种类似的方法,改为使用正则表达式:

import re

def convert_string(s):
    return map(int, re.findall(r'[0-9]+', s))    

或使用列表理解:

import re

def convert_string(s):
    return [int(num) for num in re.findall(r'[0-9]+', s)]

这是一种更通用的方法,适用于分隔输入字符串中数字的任何字符(在本例中为&#39; |&#39;)。