看不出输出

时间:2015-11-29 18:55:58

标签: python lambda

items = [("A",5,6),("A",4,5),("A",3,8),("B",6,9),("B",7,4),("C",9,2)]
q2= filter(lambda x: x.count("A"),items)
q4= map(lambda x: x[1], items)
list(q4)
print("Q2 = {}".format(q2))
print("Q4 = {}".format(q4))

我无法理解为什么输出dos不显示?! 我试着计算列表中有多少A并打印第二项 Q2 = Q4 =

2 个答案:

答案 0 :(得分:0)

您正在正确过滤items但是您应该在q2上应用下一步,因为过滤器不会更改items。它返回结果,并将其分配给q4。所以:

items = [("A",5,6),("A",4,5),("A",3,8),("B",6,9),("B",7,4),("C",9,2)]
q2= filter(lambda x: x.count("A"),items)
q4= map(lambda x: x[1], q2)
list(q4)
print("Q2 = {}".format(q2))
print("Q4 = {}".format(q4))

答案 1 :(得分:0)

关于你的第一个问题:

print map(lambda x: x[0],items).count('A')

或者,

print [i[0] for i in items if i[0]=='A']

关于你的第二个问题:

print map(lambda x:x[1],items)