我希望编写一个Python程序,从键盘获取一个数字,并输出一个根据原始数字的每对数字中的最小值构建的数字。例如:
Enter number please: 84372216
Original number: 84372216
New number: 4321
我有一个想法,将原始数字转换为字符串,在奇数位置和偶数位置创建数字(字符)列表,然后通过列表索引对它们进行比较。这听起来不太高效或易于实现,因为它涉及太多从 int 到 string 的转换,反之亦然。这样做的好处是可以轻松解决奇数位数字的问题。
有没有一种方法可以不使用字符串来解决这个问题?
谢谢。
最佳答案
对原始数字的切片使用 zip()
,对返回的每个 tuple
使用 min()
:
>>> number = input('Enter number please: ')
Enter number please: 84372216
>>> print('Original number: {}'.format(number))
Original number: 84372216
>>> new_number = ''.join(min(tup) for tup in zip(number[::2], number[1::2]))
>>> print('New number: {}'.format(new_number))
New number: 4321
关于python - 将数字中的数字配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961401/