我正在寻找一种引用整数或字符串中特定数字的一般方法,我需要能够对交替数字执行不同的操作,并对所有返回值的结果求和。
非常感谢任何帮助
哦,我是一个完全的初学者,所以非常喜欢白痴的答案。
我会详细说明,在Python上是否有任何内置函数可以将整数减少到它的数字列表中,我看起来无济于事我希望有人在这里能理解我在问什么,抱歉这么模糊但是我还不知道Python还提供了一个非常深入的问题。
答案 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]