将元组对相乘

时间:2019-06-26 14:17:31

标签: python-3.x string integer tuples transform

我需要制作一个函数以将两个字符串相乘并给出一个整数列表

我必须转身

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)))

我很乐意提供任何建议

1 个答案:

答案 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))