如何操作整数/字符串中的数字?
我想找一种通用的方法来指代整数或字符串中的特定数字。我需要能够对交替的数字进行不同的操作,并把所有这些操作的结果加起来。
任何帮助都非常感谢。
哦,我还是个完全的初学者,所以希望能给我一些简单明了的答案。
我再详细说一下,有没有什么Python内置的函数可以把一个整数变成它的数字列表?我找了很久都没有找到,希望这里有人能理解我在问什么,抱歉我说得有点模糊,但我对Python还不够了解,没法提出更深入的问题。
3 个回答
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]
接下来,你可以根据需要修改得到的列表……
0
如果你想把一个字符串转换成数字列表,可以这样做:
digits = [int(x) for x in mystr]
列表是可以改变的,所以你可以通过这种方式来修改每个数字。
如果你想把它再转换回字符串(假设你的数字都是一位数):
''.join([str(x) for x in digits])
你还可以在切片的时候使用步长来处理交替的数字。
digits[::2]
digits[1::2]
4
如果你从一个整数开始,首先要把它转换成字符串;因为在整数里面,你不太方便直接访问每个数字:
>>> myint = 979
>>> mystr = str(myint)
>>> mystr
'979'
你可以用方括号和数字索引来访问每个数字,从零开始计数:
>>> mystr[1]
'7'
如果你需要对这些数字进行数学运算,可以把它们再转换回整数:
>>> int(mystr[1])
7
如果你只是想做数字的求和,列表推导式会很方便:
>>> sum( [ int(x) for x in mystr ] )
25
记住,当你在处理单个数字时,你是在处理字符串,而当你在做数学运算时,你是在处理整数,所以这种情况需要频繁地进行转换。