所以我有一个字符串,我想将其转换为列表
输入:
"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)
答案 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;)。