筛选数组以显示特定列中特定值的行
假设我有一个多维列表 l:
l = [['a', 1],['b', 2],['c', 3],['a', 4]]
我想要返回一个新的列表,这个列表只包含那些在第一列元素中有 'a' 的行:
m = [['a', 1],['a', 4]]
有什么好的方法可以高效地做到这一点吗?
5 个回答
1
在编程中,有时候我们会遇到一些问题,尤其是在使用特定的工具或库时。比如,有人可能在使用某个库的时候,发现它的功能和自己想要的不太一样。这种情况下,大家通常会在网上寻求帮助,像是StackOverflow这样的论坛就是一个很好的地方。
在这些论坛上,用户会描述他们遇到的问题,提供一些代码示例,甚至会提到他们尝试过的解决办法。其他人看到这些问题后,可能会给出建议,或者分享他们的经验,帮助提问者找到解决方案。
总之,编程过程中遇到问题是很正常的,借助社区的力量,我们可以更快地找到答案,提升自己的技能。
m = [i for i in l if i[0] == 'a']
1
19
这绝对是使用列表推导式的好例子:
m = [row for row in l if 'a' in row[0]]
在这里,我是字面意思理解你说的“第一个元素中有'a'”,所以用了 in
操作符。如果你想把这个限制为“第一个元素是'a'”(这和你实际写的意思完全不同!),那么
m = [row for row in l if 'a' == row[0]]
就更合适了;-)。