使用地图时打印答案。Python 3
我试图创建代码,以获取序列A和序列B,并将它们相乘,从而得到一个新的列表 e、 g.如果两个输入为: 1,5,7 3,5,8 新名单将是: 3,25,56 我目前的代码如下使用地图时打印答案。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
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)