我需要制作一个函数以将两个字符串相乘并给出一个整数列表
我必须转身
L="1 3 5 7"
N="4 -1 2 0"
到
[4, -3, 10, 0]
到目前为止,我已经有了这个,但是我不确定如何定义函数
l=L.split()
n=N.split()
l1=map(int,l)
n1=map(int,n)
z=zip(n1,l1)
print(list(z))
def transform(x):
for i in x:
for j in x:
yield i*j
print (list(transform(z)))
我很乐意提供任何建议
答案 0 :(得分:1)
由于您的预期输出-这是一个 sum ,而不是乘法:
bar.txt
输出:
L="1 3 5 7"
N="4 -1 2 0"
def sum_str_items(s1, s2):
return list(map(sum, zip(map(int, s1.split()), map(int, s2.split()))))
print(sum_str_items(L, N))
可以使用itertools.starmap函数来实现“乘法” 版本:
[5, 2, 7, 7]
输出:
from itertools import starmap
from operator import mul
L = "1 3 5 7"
N = "4 -1 2 0"
def mul_str_items(s1, s2):
return list(starmap(mul, zip(map(int, s1.split()), map(int, s2.split()))))
print(mul_str_items(L, N))