这是我的名单:
list_input = [432567,876323,124356]
这是我需要的输出:
List_output = [321456,765212,013245]
像这样,
for index, number in enumerate(list_input):
one_number = list_lnput(index)
one_digit_list = list(one_number[0])
这一步之后我就没主意了
这是我的名单:
list_input = [432567,876323,124356]
这是我需要的输出:
List_output = [321456,765212,013245]
像这样,
for index, number in enumerate(list_input):
one_number = list_lnput(index)
one_digit_list = list(one_number[0])
这一步之后我就没主意了
3条答案
按热度按时间cqoc49vn1#
这个问题的时间复杂度为 O(1),因为你需要从整数
i
中减去一个1的个数,这个个数等于这个整数的位数,可以通过计算int(math.log10(i)) + 1
得到,用(10 ** (int(math.log10(i)) + 1) - 1) // 9
可以得到相同个数的1:因此,例如
decrement_digits(432567)
将返回:因此您可以将输入列表Map到函数以进行输出:
dced5bon2#
divmod
可以用来依次分离每个数字。记住小数点的位置(1、10、100等),以便正确地将其加回。对于零,这会很混乱。但我们没有任何定义在这种情况下应该发生什么,所以我坚持使用它。把逻辑放在它自己的函数中使得把过程写成列表理解更容易。我认为它也比试图维护索引更容易阅读。
vybvopom3#
要获得带前导零的输出,唯一的方法是将intS转换为strS。
请注意,这将导致输入负数时出现ValueError: