【发布时间】:2020-10-22 17:00:56
【问题描述】:
我正在做一个练习,我创建了一个函数,该函数接收两个列表并在单独的单个列表中返回相同索引处的项目的乘法。示例:
transform("1 5 3", "2 6 -1")
#should return
[2, 30, -3]
为了清楚起见,程序获取索引 1、2 和 3 处的项目并将它们相乘,如下所示:
(1 * 2), (5 * 6), (3 * -1)
现在,我面临的问题是在程序中必须使用zip()函数,我还没有正确使用。
我已经制作了一个成功完成一般任务的程序,但我想不出一个使用压缩列表的解决方案。谁能帮我解决这个问题?我有一个想法,我可以使用我在 map() 函数中创建的压缩列表“q”,但我不知道如何。
这是我的程序:
def transform(s1, s2):
i = 0
s = s1.split(' ')
d = s2.split(' ')
while i < len(s):
try:
s[i] = int(s[i])
d[i] = int(d[i])
i += 1
except ValueError:
break
print(s, d)
q = list(zip(s, d))
print(q)
final = list(map(lambda x, y: x * y, s, d))
return final
def main():
print(transform("1 5 3", "2 6 -1"))
if __name__ == "__main__":
main()
提前感谢任何提供帮助的人!
【问题讨论】:
标签: python python-3.x lambda list-comprehension