我正在寻找一种通用方法来引用整数或字符串中的特定数字,我需要能够对交替数字执行不同的操作并对所有这些返回值的结果求和。
任何帮助深表感谢
哦,我是一个完整的初学者,因此将不胜感激。
我会详细说明,Python上是否有任何内置函数可以将整数减少为数字列表,我看起来无济于事,我希望这里的人能理解我在问什么,抱歉这么含糊,但我知道对 Python 的了解还不够,无法提供一个非常深入的问题。
如果从整数开始,首先将其转换为字符串;您不能方便地处理整数中的数字:
>>> myint = 979
>>> mystr = str(myint)
>>> mystr
'979'
使用方括号中的索引来寻址单个数字,从零开始:
>>> mystr[1]
'7'
如果您需要对它们进行数学运算,请将这些数字转换回整数:
>>> int(mystr[1])
7
如果你只是做一个数字求和,列表推导很方便:
>>> sum( [ int(x) for x in mystr ] )
25
请记住,当您考虑单个数字时,您正在使用字符串,而当您进行算术时,您正在使用整数,所以这种事情需要大量来回转换。
我不会声称这是最好的答案,但它符合您的要求:
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]
从那里您可以根据需要修改结果列表...
要将字符串转换为数字列表:
digits = [int(x) for x in mystr]
列表是可变的,因此您可以通过这种方式修改单个数字。
转换回字符串(假设所有数字都是个位数):
''.join([str(x) for x in digits])
您可以在切片中使用 strides 来处理交替数字
digits[::2]
digits[1::2]