如何使用for循环将两位数整数附加到列表中而不拆分它们。例如,我给计算机10,14,13,15,我得到像1,0,1,4,1,3,1,5这样的东西。我试图解决这个问题,但我最后遇到了一个新问题,即类型错误:序列项0:期望字符串,找到int
def GetNumbers(List):
q=[]
Numberlist = []
for i in List:
if i.isdigit():
q.append(int(i))
else:
Numberlist.append(''.join(q[:]))
del q[:]
return Numberlist
答案 0 :(得分:0)
理想的方法是将str.split()
函数用作:
>>> my_num_string = "10,14,13,15"
>>> my_num_string.split(',')
['10', '14', '13', '15']
但是,既然你提到你不能使用split()
,你可以使用regex
表达式从字符串中提取数字:
>>> import re
>>> re.findall('\d+', my_num_string)
['10', '14', '13', '15']
另外,如果你不想使用任何花哨的方法,你可以用简单的for
循环来实现它:
num_str, num_list = '', []
# ^ Needed for storing the state of number while iterating over
# the string character by character
for c in my_num_string:
if c.isdigit():
num_str += c
else:
num_list.append(num_str)
num_str = ''
num_list
中的数字将采用str
的形式。要将它们转换为int
,您可以明确地将它们转换为:
num_list = [int(i) for i in num_list] # OR, list(map(int, num_list))