使用地图时打印答案。Python 3

使用地图时打印答案。Python 3,python,Python,我试图创建代码,以获取序列A和序列B,并将它们相乘,从而得到一个新的列表 e、 g.如果两个输入为: 1,5,7 3,5,8 新名单将是: 3,25,56 我目前的代码如下 print ("INPUT:") num_sequence_A = input( "enter sequence A: " ) num_sequence_B = input( "enter sequence B: " ) #计算以计算新列表。 calc=map(λx,y:x*y,num\u sequence\u A,n

我试图创建代码,以获取序列A和序列B,并将它们相乘,从而得到一个新的列表

e、 g.如果两个输入为: 1,5,7 3,5,8

新名单将是: 3,25,56

我目前的代码如下

print ("INPUT:")
num_sequence_A = input( "enter sequence A: " ) 
num_sequence_B = input( "enter sequence B: " ) 
#计算以计算新列表。
calc=map(λx,y:x*y,num\u sequence\u A,num\u sequence\u B)

然而,我无法找到打印计算结果的方法。 我试过:

calc = map(print, lambda x,y:x*y,num_sequence_A,num_sequence_B)


没有成功。

首先,需要将输入转换为int数组

num_sequence_A = input("enter sequence A: ")
num_sequence_B = input("enter sequence B: ")

num_sequence_A = [int(i) for i in num_sequence_A.split(',')]
num_sequence_B = [int(i) for i in num_sequence_B.split(',')]
然后,计算结果:

calc = map(lambda x, y: x * y, num_sequence_A, num_sequence_B)
最后,打印输出:

print(','.join([str(i) for i in calc]))
此外,您还可以使用
re

import re

num_sequence_A = input("enter sequence A: ")  # 3.4 5.6 7.8
num_sequence_B = input("enter sequence B: ")  # 4.5 7 6

num_sequence_A = re.findall(r'(\d+\.\d+)|(\d+)', num_sequence_A)
num_sequence_B = re.findall(r'(\d+\.\d+)|(\d+)', num_sequence_B)

num_sequence_A = [float(i[0]) if len(i[0]) != 0 else float(i[1]) for i in num_sequence_A]
num_sequence_B = [float(i[0]) if len(i[0]) != 0 else float(i[1]) for i in num_sequence_B]

calc = map(lambda x, y: x * y, num_sequence_A, num_sequence_B)

print(','.join(['%.2f' % i for i in calc]))

使用
映射
过滤
或列表理解来创建新的可编辑项,决不用于打印等副作用。要打印
calc
中的项目,只需使用for循环即可

calc = map(lambda x, y: x*y, num_sequence_A, num_sequence_B)

for num in calc:
    print(num)

@danh是否可以将其格式化,使结果为[0,1,4,9,16]?使用
calc=list(map(lambda x,y:x*y,num_sequence\u A,num_sequence\u B))
@StefanPochmann:因为我认为他只想使用
map
函数,我已经尝试用它来实现您的解决方案:
num_sequence\u A=input(“enter sequence A:”)
其中我收到一个错误。只有当我将输入序列更改为:
num\u sequence\u A=range(5)
@pete:您收到一个错误,因为此函数
lambda x,y:x*y
。不能将序列与'str'类型的非整数相乘。
print(*calc,sep='\n')
。我喜欢^
calc = map(lambda x, y: x*y, num_sequence_A, num_sequence_B)

for num in calc:
    print(num)