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

2 投票
3 回答
33585 浏览
提问于 2025-04-17 05:03

我想找一种通用的方法来指代整数或字符串中的特定数字。我需要能够对交替的数字进行不同的操作,并把所有这些操作的结果加起来。

任何帮助都非常感谢。

哦,我还是个完全的初学者,所以希望能给我一些简单明了的答案。

我再详细说一下,有没有什么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

记住,当你在处理单个数字时,你是在处理字符串,而当你在做数学运算时,你是在处理整数,所以这种情况需要频繁地进行转换。

撰写回答