gpt4 book ai didi

python - 表中两个列表编号的总和

转载 作者:行者123 更新时间:2023-12-01 09:33:49 25 4
gpt4 key购买 nike

例如,我有两个数字列表:

List_numbers_1 = [3, 54, -30]
List_numbers_2 = [65, 8, 800]

我想创建一个运行以下求和表的函数:

  3 +  65 =  68
54 + 8 = 62
-30 + 800 = 770

table 排成一排,这就是我的目标。为了创建该函数,我创建了其他 3 个函数,它们可能会对我有所帮助:

'''it returns the width of a number '''
def max_width(List_numbers_1):
string_List_numbers_1 = map(str, List_numbers_1)
width_List_numbers_1 = map(len, string_List_numbers_1)
return max(width_List_numbers_1)

Output: 3
'''it returns the padd for a number'''

def left_padded(number, width):
return str(number).rjust(width)

left_padded(54, 5)
' 54'
left_padded(-56, 5)
' -56'
'''It returns a padd for all the numbers of the list'''
def all_left_padded(List_numbers_1, width):
return list(map(lambda number: left_padded(number, width), List_numbers_1))

all_left_padded(List_numbers_1, 5)
[' 3', ' 54', ' -30']

我认为上述函数对我的最后一个函数很有用。尽管如此,我真的很感激任何其他想法。如果可能的话,我更喜欢使用 return 语句但使用 print() 的函数。

事实上我认为这个函数也必须包含 return 和 print 。

谢谢

最佳答案

如果没有 numpy,您可以将列表压缩在一起并将它们相加:

[sum(i) for i in zip(lst1,lst2)]

使用列表理解比 map 更容易

为了格式化数字,很自然地使用str.format()

由于您事先不知道数字的宽度,因此您首先创建格式字符串,最简单的方法是使用 format

# maxlen returns the length of the longest element
def maxlen(l):
return max([len(str(i)) for i in l])

# sumtable returns a formatted multiline string containing the sums
# written in a human readable form.
def sumtable(l1,l2):
#sums contains the answers, and table is the full table numbers in
#the calculations as a list of tuples
sums = [sum(i) for i in zip(l1,l2)]
table = list(zip(l1,l2,sums))

width1 = maxlen(l1)
width2 = maxlen(l2)
widthsum = maxlen(sums)

# formatstring has a form like "{:3d} + {:5d} = {:5d}\n"
formatstring = "{{:{}d}} + {{:{}d}} = {{:{}d}}\n".format(width1,width2,widthsum)

# unpack the values from the table into the format string and return.
return (formatstring.format(*table[0])
+ formatstring.format(*table[1])
+ formatstring.format(*table[2]))

print(sumtable([3,54,-30],[65,8,800]))

# 3 + 65 = 68
# 54 + 8 = 62
# -30 + 800 = 770

关于python - 表中两个列表编号的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49711763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com