【问题标题】:How do I go through an array of numbers efficiently in Python? [duplicate]如何在 Python 中有效地遍历一组数字? [复制]
【发布时间】:2018-09-02 09:03:42
【问题描述】:

我正在尝试一种更有效的方法来遍历一组数字,并找出缺少的数字。我有一个从 1 到 20 的数字数组,但缺少一个,并且这些数字没有按时间顺序排列(它们被打乱了)

array = [16, 11, 4, 6, 14, 8, 5, 13, 10, 2, 9, 15, 3, 18, 20, 12, 19, 7, 1]

我想到的方法是:

for x in range(1, len(array) + 1):
    if x not in array:
        print(x)

这种方法的问题是速度慢,效率低,如果我需要分析一个非常大的数组(有数千个数字),需要很长时间。

【问题讨论】:

    标签: python arrays performance analysis space-efficiency


    【解决方案1】:

    您可以找到set.difference

    >>> set(range(1, 21)).difference(array)
    {17}
    

    【讨论】:

    • 该问题看起来与stackoverflow.com/questions/20718315/… 重复,但没有答案提及set 方法。
    • @Jean-FrançoisFabre 体面的欺骗目标,但在这种情况下,初始列表已排序;也至少 1 个答案使用集合 stackoverflow.com/a/34045983/6260170
    • 好的,所以问题匹配,并且相同的答案适用。骗人的。科里保持你的代表,答案是好的。
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2017-08-23
    • 2022-01-04
    • 2021-12-30
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多