我正在接收我放入列表中的数据,并想使用python map& amp;中的新列表的两个索引来计算某些内容。拉姆达。
我目前正在使用此代码,但却出现错误
TypeError: argument 2 to map() must support iteration
for i in range(int(raw_input())):
a = map(float, raw_input().split(' '))
print map(lambda x, y: x / (y^2), a[0], a[1])
我使用的数据
47 1.30
84 2.45
52 1.61
118 2.05
70 1.67
75 1.58
答案 0 :(得分:1)
您可以将数组作为参数传递给lambda,并使用其索引访问lambda中的元素:
print map(lambda x: x[0]/(x[1]**2), [a])
此外,您使用的是按位XOR运算符(^),而不是" power"运营商(**)
但是......我没有看到在这里使用lambda的意义,你只想对这两个元素进行一些计算。 所以你可以这样做:
print a[0]/a[1]**2
答案 1 :(得分:0)
https://docs.python.org/2/library/functions.html#map
map(function,iterable,...) 将函数应用于iterable的每个项目并返回结果列表...
a
是可迭代的,因为raw_input().split(' ')
是可迭代的,但a[0]
和a[1]
不是。
你应该print a[0] / a[1]**2
正确输入
6
47 1.30
84 2.45
52 1.61
118 2.05
70 1.67
75 1.58
和代码
for i in range(int(raw_input())):
a = map(float, raw_input().split(' '))
print a[0] / a[1]**2
答案 2 :(得分:-1)
您可以使用适合您的用例的map
reduce
for i in range(int(raw_input())):
a = map(float, raw_input().split(' '))
print reduce(lambda x, y: x / (y^2), a)