繁体   English   中英

反转数字中的数字

[英]Reverse digits in a number

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

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

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
  • 从性能的角度来看,哪个实现更好?

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

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

你想反转一个数字……..输入它作为字符串格式,然后这样做:

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

完毕在此处输入图像描述

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

这将给出 a = 4321

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

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

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

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

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

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

输出:

654321
<类'int'>

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

打印(int(str(int(input()))[::-1]))

#here is my answer . you can do it using simple recursion
# 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)
````````````````````````````````````````````````````

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM