Python解析,将字符串转换为整数列表

时间:2014-12-20 21:16:30

标签: python

我正在使用raw_input让用户输入一个整数,例如'123456'

如何按字母数字转换字符串编号,以便将其放入列表中:[1,2,3,4,5]

123456等两个数字的概念是否相同?

3 个答案:

答案 0 :(得分:0)

如果您想将从raw_input读入的字符串转换为int的列表...

number = raw_input("Number? ")
li = [int(i) for i in number]

为了将它扩展到多位数,你需要做的工作还要多一点,但我把它作为读者的练习。

答案 1 :(得分:0)

如果用户连续输入数字,您可以使用以下列表理解:

>>> num=raw_input ("enter the numbers : ")
enter the numbers : 123459
>>> l=[int(i) for i in num]
>>> l
[1, 2, 3, 4, 5, 9]

对于使用,作为分隔符的len 2的数字,您需要拆分输入字符串,然后将其转换为int:

>>> num=raw_input ("enter the numbers : ")
enter the numbers : 12,34,56
>>> l=[int(i) for i in num.split(',')]
>>> l
[12, 34, 56]

但还有另外一种方法,如果您不想转换数字,可以将raw_input函数放入循环中:

>>> l=[]
>>> for i in range (5):
...  l.append(int(raw_input('enter %dth number :'%i)))
... 
enter 0th number :1
enter 1th number :5
enter 2th number :12
enter 3th number :56
enter 4th number :2345
>>> l
[1, 5, 12, 56, 2345]

如果你想从一个输入中获得len 2的数字,你可以使用切片:

>>> num=raw_input ("enter the numbers : ")
enter the numbers : 1234424
>>> [int(num[i:i+2]) for i in range(0,len(num),2)]
[12, 34, 42, 4]

答案 2 :(得分:0)

s = '123456'
print(map(int,s))

s = '12,34,56'
print(map(int,s.split(",")))

[1, 2, 3, 4, 5, 6]
[12, 34, 56]


s = '123456'
print([int("".join(tup)) for tup in zip(s[::2],s[1::2])]

[12, 34, 56]