num_list = [12, 16, 17, 2, 5, 19, 24, 27, 42]
你好,我正在尝试格式化在没有itertools的情况下创建的数字列表的累积和。这是我目前掌握的代码。我希望累积列表中的每个数字在打印时都有10的宽度,但我不确定如何打印。
def Cumulative(lists):
num_list = []
length = len(lists)
num_list = [sum(lists[0:x:1]) for x in range(0, length+1)]
return num_list[1:]
print (Cumulative(num_list))
F字符串格式显然是没有帮助的。
您可以使用f-string格式化文本中的每个列表项(整数(。
输出字符串对齐的语法由>
定义
示例:
f"{number : >10}" # this aligns the number to the right, with a width of 10
类似地,在您的代码中,您可以在列表理解中对sum()
的结果使用以下格式:
num_list = [12, 16, 17, 2, 5, 19, 24, 27, 42]
def cumulative_sum(lists):
length = len(lists)
new_list = [f"{sum(lists[0:x]) : >10}" for x in range(0, length+1)]
return new_list[1:]
print(cumulative_sum(num_list))
输出为:
[' 12', ' 28', ' 45', ' 47', ' 52', ' 71', ' 95', ' 122', ' 164']
这将满足您的要求:
我希望累积列表中的每个数字在打印时都有10的宽度
注意:现在列表由字符串组成,而不是整数
或者:
如果不想更改每个项的类型,那么可以保留返回整数列表的函数。
打印时,可以在每个列表项周围添加f字符串对齐格式。例如:
for num in cumulative_sum(num_list):
print(f"{num : >10}")
输出:
12
28
45
47
52
71
95
122
164