python - 将数字中的数字配对

标签 python python-3.x

我希望编写一个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/

相关文章:

python - Python 如何从 argparse 填充字符串

python - 在 Pandas DataFrame 子集(副本)上设置值很慢

python - PyQt : Compiling date/time into window title

python - 在抛出之前操作异常的堆栈跟踪 (Python)

python - nargs > 1 的位置参数的元组元变量值

python - Pandas:将数据写入 MySQL 时毫秒数下降

python - 使用 gcloud python 将空数据上传到 Bigquery

python - 阻止键盘但获得全局热键 XLib

python - pickle OrderedDict 的子类

python - '\t' 在 python 正则表达式对象中匹配什么?