小编Mar*_*rko的帖子

如何查找列表中出现次数最多的几个元素

我的下面的程序确实找到了列表中最常见的元素:

numbers = [7, 1, 7, 9, 2, 9, 7, 3, 0]
counter = []

for num in range(10):
    n = numbers.count(num)
    counter.append(n)

largest = max(counter)
print(counter.index(largest))
Run Code Online (Sandbox Code Playgroud)

输出是 7,这是正确的。

但是,如果我在列表中添加另外 9 个:

numbers = [7, 1, 7, 9, 2, 9, 7, 3, 0, 9]
Run Code Online (Sandbox Code Playgroud)

这意味着列表中有两个最常见的元素(在本例中,7 和 9 都出现了 3 次,如上所示),它只打印其中之一 - 在本例中为 7。

有什么方法可以更改我的代码,以便输出正确吗?

python list

3
推荐指数
1
解决办法
2956
查看次数

我可以使用 map 将参数元组(或列表)插入到函数中吗?

我的目标是创建一个函数来检查一个数字是否在给定的范围内。

所以,我创建了一个函数 range_check(),它接受三个参数——数字、低和高。我还创建了 4 个存储为元组的测试用例。前三个测试用例为真,最后一个为假。

def range_check(num, low, high):
    return low <= num <= high


test_values = [(2, 1, 4), (5, 2, 7), (3, 1, 10), (3, 4, 5)]

for test_case in test_values:
    print(range_check(test_case[0], test_case[1], test_case[2]))
Run Code Online (Sandbox Code Playgroud)

由于我最近发现了 lambda 是什么以及如何使用它(我对 Python 和一般编程还是很陌生),我想尝试使用 lambda 和 map 来解决这个问题(或者过滤器也可以在这里使用,我猜)

test_values = [(2, 1, 4), (5, 2, 7), (3, 1, 10), (3, 4, 5)]
print(list(map(lambda num, low, high: low <= num <= high, test_values)))
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误 - lambda 缺少 2 个必需的参数 - 低和高。

有什么方法可以将一组参数插入到这样的函数或 lambda 中吗? …

python lambda function

3
推荐指数
2
解决办法
82
查看次数

标签 统计

python ×2

function ×1

lambda ×1

list ×1