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

2024-04-20 16:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个字符串,我想把它转换成一个列表

输入:

"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)

Tags: 字符串列表inputlenifelse例子int
3条回答

这里有一个类似的方法,使用正则表达式代替:

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)]

这是一种更通用的方法,适用于分隔输入字符串中数字的任何字符(在本例中为“|”)。你知道吗

使用list comprehension

代码:

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

输出:

[123, 456, 890, 60]

备注:

  • Split在这里创建一个list of strings,当前字符串在|处被拆分
  • 我们在列表上循环并将字符串转换成int

感谢您的编辑尝试。拆分字符串和将字符串转换为整数是非常常见的任务,Python已经内置了实现这些任务的工具。你知道吗

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

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

相关问题 更多 >