有没有办法count()在嵌套列表中寻找特定值的地方使用,而不是关心其余的?
lst = [[1,6],[1,4],[3,4],[1,2]]
X = 1
lst.count([X, _ ])
Run Code Online (Sandbox Code Playgroud)
这将返回一个计数3,因为有三个嵌套列表1在第一个索引中具有a .
有没有办法做到这一点?
使用一些偷偷摸摸的sum()黑客:
sum(k[0] == X for k in your_list)
Run Code Online (Sandbox Code Playgroud)
即
>>> X = 1
>>> your_list = [[1,6],[1,4],[3,4],[1,2]]
>>> sum(k[0] == X for k in your_list)
3
Run Code Online (Sandbox Code Playgroud)
为什么?
section:k[0] == X for k in your_list是一个生成器表达式,True为每个元素生成your_list第一个元素等于你的元素X.该sum()函数接受值并将a True视为a 1.