我想要从子列表的整数值含“B”为第一要素(B将只在列表中出现一次)的Python:列表理解与拉姆达
这两种方式来到我的脑海:
foo = [["a", 5], ["b", 10], ["c", 100]]
y = filter(lambda x: x[0] == "b", foo)
print y[0][1]
z = [foo[i][1] for i in range(len(foo)) if foo[i][0] == "b"]
print z[0]
他们都工作。有两个更好的选择(关于运行时),还有更好的第三种方式吗?
'z = [x [1] for x in foo if x [0] =='b']'even even even more clean。 – glormph 2013-03-13 11:32:28
或'[b for a,b in foo if a =='b']''。 – 2013-03-13 11:36:21