python - 从数组python中选择最大值

标签 python arrays list max

如何获取列表中最大长度的子列表?

我有这个代码:

c = [1,2]
a = [[1,2], [3,4], [3,2]]
for b in a:
    g = len(list(set(b) - set(c))) *#list of difference items between c and b in a*
    print(g)

结果

0
2
1

我需要在 a 中获取最长长度的 b >> g = 2

我用过

y = [b for b in a if max (g)]

TypeError: 'int' 对象不可迭代

谢谢,

最佳答案

max(g) 没有多大意义,因为 g 只是最后一个 int 值(1) 在上一个循环中。 max() 需要一个可迭代的 - 因此你的错误。但是即使将 g 固定为列表 [0, 2, 1] 你在列表理解中的守卫也不会真正做任何事情,因为它总是评估为 True 因为它等同于编写 if 2

但是你可以用 max() 重写你的代码,使用 key 来计算差值:

>>> c = [1,2]
>>> a = [[1,2], [3,4], [3,2]]
>>> max(a, key=lambda x: len(set(x)-set(c)))
[3, 4]

关于python - 从数组python中选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43486765/

相关文章:

python - 在机器学习中从多维空间中选择不同数据集子样本的方法?

c结构数组初始化

list - Gecko 1.9 的 CSS3 列平衡

python - 如何从列表列表中制作平面列表?

python - 谷歌应用引擎中python中间件的301重定向

Python 函数参数 : tuple/list

python - 删除行内的Pandas重复值,替换为NaN,将NaN移至行尾

php - MySql 学说 : find if given variable is IN array property

python - 基于多个条件处理 numpy 数组的更有效方法是什么?

c++ - 如何 list.sort(member Function);?