相关疑难解决方法(0)

在numpy向量中找到最常见的数字

假设我在python中有以下列表:

a = [1,2,3,1,2,1,1,1,3,2,2,1]
Run Code Online (Sandbox Code Playgroud)

如何以整洁的方式找到此列表中最常见的号码?

python statistics numpy

103
推荐指数
6
解决办法
13万
查看次数

Python-找到列表中出现次数最多的项目

在Python中,我有一个列表:

L = [1, 2, 45, 55, 5, 4, 4, 4, 4, 4, 4, 5456, 56, 6, 7, 67]  
Run Code Online (Sandbox Code Playgroud)

我想确定发生次数最多的项目.我能够解决它,但我需要最快的方法来解决它.我知道有一个很好的Pythonic答案.

python list max counting

51
推荐指数
5
解决办法
8万
查看次数

获取数组中最不常见的元素

为了找到最常见的,我知道我可以使用这样的东西:

most_common = collections.Counter(array).most_common(to_find)
Run Code Online (Sandbox Code Playgroud)

然而,我似乎无法找到任何可比的,因为找到最不常见的元素.

我可以获得有关如何做的建议.

python python-3.x

25
推荐指数
6
解决办法
1万
查看次数

是否有更好的方法来查找列表中最常见的单词(仅限Python)

考虑到问题的一个简单实现,我正在寻找一种更快的方法来找到Python列表中最常见的单词.作为Python访谈的一部分,我收到的反馈是,这种实现效率很低,基本上都是失败的.后来,我尝试了很多我发现的算法,只有一些基于堆栈的解决方案速度稍微快一些,但不是绝大多数(当缩放到数千万个项目时,heapsearch的速度提高了大约30%;在千万倍的长度上,它几乎是相同;使用timeit).

def stupid(words):
    freqs = {}
    for w in words:
        freqs[w] = freqs.get(w, 0) + 1
    return max(freqs, key=freqs.get)
Run Code Online (Sandbox Code Playgroud)

由于这是一个简单的问题而且我有一些经验(虽然我无处算法大师或竞争编码器)我很惊讶.

当然,我想提高我的技能并学习解决问题的更好方法,所以你的意见将得到赞赏.

澄清重复状态:我的观点是找出实际上是否有更多(渐近)更好的解决方案,其他类似的问题已经选择了一个不太好的答案.如果这还不足以使问题变得独一无二,那么当然要关闭这个问题.

更新

谢谢大家的意见.关于访谈情况,我仍然认为手写搜索算法是预期的(可能更有效)和/或审阅者从另一种语言的角度评估代码,具有不同的常数因素.当然,每个人都可以拥有自己的标准.

对我来说重要的是验证我是否完全无能为力(我的印象是我不是)或者通常只写不是最好的代码.仍然有可能存在更好的算法,但如果它在这里为社区隐藏了几天,我就可以了.

我正在选择最受欢迎的答案 - 这样做似乎是公平的,尽管不止一个人提供有用的反馈意见.

次要更新

看起来使用defaultdict比使用'get'方法有明显的优势,即使它是静态别名的.

python algorithm

6
推荐指数
1
解决办法
520
查看次数

Python获取字典中最高值的键,不使用内置函数

我们应该如何在不使用内置函数的情况下获取python字典中最高值

{1: 1, 2: 1, 3: 1, 4: 3, 5: 2} **Expecting answer to be 4**
Run Code Online (Sandbox Code Playgroud)

这可以通过以下方式轻松完成

max_key = max(check, key=lambda k: check[k])
Run Code Online (Sandbox Code Playgroud)

但是想尝试没有内置函数(没有max,lambda)

任何帮助深表感谢

我的完整代码

def array(num):
    check={}
    for i in range(len(num)):
        if num[i] in check:
            check[num[i]]+=1
        else:check[num[i]]=1

    max_key = max(check, key=lambda k: check[k])



array([1,2,3,4,5,4,5,4])
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

Python:在嵌套列表中返回具有较高出现百分比的值

我有一个带有单个数值的条目的嵌套列表,我需要确定哪个值总共有更高的外观百分比.

[['3', '7', '13', '4'],
 ['7', '3', '2', '1', '13', '4'],
 ['3', '13'],
 ['3', '7', '4', '13'],
 ['7', '3', '13', '4'],
 ['3', '13', '7', '8', '4'],
 ['1', '7', '3', '4', '13'],
 ['13'],
 ['7', '3', '13'],
 ['7', '3', '4']]
Run Code Online (Sandbox Code Playgroud)

在此示例中,数字"13"出现在90%的条目中.

我知道我可以迭代每个条目,使用计数器并在结尾比较结果,但应该有一个更简洁的方法来做到这一点.

有什么帮助吗?

提前致谢.

python

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

标签 统计

python ×6

algorithm ×1

counting ×1

dictionary ×1

list ×1

max ×1

numpy ×1

python-3.x ×1

statistics ×1