如何操作整数/字符串中的数字?

时间:2011-10-26 18:02:15

标签: python string integer digits

我正在寻找一种引用整数或字符串中特定数字的一般方法,我需要能够对交替数字执行不同的操作,并对所有返回值的结果求和。

非常感谢任何帮助

哦,我是一个完全的初学者,所以非常喜欢白痴的答案。

我会详细说明,在Python上是否有任何内置函数可以将整数减少到它的数字列表中,我看起来无济于事我希望有人在这里能理解我在问什么,抱歉这么模糊但是我还不知道Python还提供了一个非常深入的问题。

3 个答案:

答案 0 :(得分:4)

如果您是以整数开头,请先将其转换为字符串;你不能方便地解决整数中的数字:

>>> myint = 979
>>> mystr = str(myint)
>>> mystr
'979'

使用方括号中的索引处理各个数字,从零开始:

>>> mystr[1]
'7'

如果您需要对它们进行数学运算,请将这些数字转换回整数:

>>> int(mystr[1])
7

如果您只是进行数字求和,列表推导很方便:

>>> sum( [ int(x) for x in mystr ] )
25

请记住,当你考虑个别数字时,你正在使用字符串,当你进行算术运算时,你正在使用整数,所以这种事情需要大量的转换回来类推。

答案 1 :(得分:0)

我不会声称这是最好的答案,但它符合您的要求:

In [1]: x = 1003998484

In [2]: [int(y) for y in str(x)]
Out[2]: [1, 0, 0, 3, 9, 9, 8, 4, 8, 4]

或者,如果您的输入已经是字符串,则可以省略str()强制转换:

In [1]: x = '482898477382'

In [2]: [int(y) for y in x]
Out[2]: [4, 8, 2, 8, 9, 8, 4, 7, 7, 3, 8, 2]

从那里你可以根据需要修改结果列表......

答案 2 :(得分:0)

只需将字符串转换为数字列表:

digits = [int(x) for x in mystr]

列表是可变的,因此您可以通过这种方式修改个别数字。

转换回字符串(假设您的所有数字都是单位数值):

''.join([str(x) for x in digits])

你可以在切片中使用步幅来处理交替的数字

digits[::2]
digits[1::2]