数字中的反转数字

时间:2018-05-22 18:34:59

标签: python python-3.x

我想在python中反转数字中的数字。这是我的两个实现。

一:将数字转换为字符串并反转其中的每个字符

number = 2376674032

number_s = str(number)
index = len(number_s) - 1
str_list = []
while index > -1:
    str_list.append(number_s[index])
    index -= 1

result = int("".join(str_list))
print(result)

二:使用简单的数学

number = 2376674032

N = 0
K = number
R = number % 10
while K > 0:
    N = N*10 + R
    K = K // 10
    R = K % 10

result = N
print(result)

由于我对python编程很陌生,所以有人可以帮我解决以下问题:

  • 使用第一种方法,"".join(str_list)会为每个列表元素生成一个新字符串吗?如果是更好的方法来连接python中的字符串(类似于java中的StringBuffer
  • 从性能角度来看哪个实现更好?

6 个答案:

答案 0 :(得分:1)

您可以使用-1反转字符串作为切片中的步骤。所以这有效:

number = 2376674032
number_s = str(number)
reverse_s = number_s[::-1]
reversed = int(reverse_s)

答案 1 :(得分:0)

你想要反转一个数字......输入它作为字符串格式,并执行以下操作:

number="8374783246837"
revnumber=number[::-1]

完成 enter image description here

答案 2 :(得分:0)

a = 1234
a = int("".join(reversed(str(a))))

这将得到= 4321

反向函数返回一个可迭代的对象。 如果我们这样做:

a = list(reversed(str(a)))

它将返回[“ 3”,“ 2”,“ 1”]。然后,我们将其加入并转换为int。

答案 3 :(得分:0)

要将数字设为integer类型,我们必须使用int函数,如下所示:

numbers=str(123456)
#or numbers="123456"

print((int(numbers[::-1])))
print((type(int(numbers[::-1]))))

输出:

654321

答案 4 :(得分:0)

我们也可以在一行中使用 [::-1]

print(int(str(int(input()))[::-1]))

答案 5 :(得分:-2)

您可以使用简单的递归操作

# count digits recursively 

def reverse_digits(n):
    # base case 
    if n == 0:
        pass 
    #recursive case
    else:
        print(n%10,end='')
        return reverse_digits(n//10)

# reverse 123
reverse_digits(123)