【问题标题】:Duplicate integer detection重复整数检测
【发布时间】:2021-08-16 04:57:10
【问题描述】:

更新:哇,真快!谢谢大家的意见,完全忽略了我将指数与价值进行比较。我知道较短的方法,我所上的课程没有向我们展示“设置”方法,所以我想用所教的内容完成作业。如果我有足够的声望点,我会投票给你们所有的 cmets,非常感谢你们!!

首先我是 python 的超级菜鸟。我学习是为了提高我的网络管理技能。我的代码的目的是删除多次出现的整数,并创建一个没有任何重复整数的新数组。但是,我的代码添加了所有重复项,而不是跳过它们。

代码:

import array
my_list = [1,1,1,1, 2, 3, 3, 4, 5, 6, 6, 3, 7]

unique_list = []

dupe_list = []

for i in range(len(my_list)):
    if i not in unique_list:
        unique_list.append(my_list[i])

print("unique array is ", unique_list, 'n', "dupe list: ", dupe_list)

输出:

unique array is  [1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 3, 7] n dupe list:  []

所以基本上我有一个for循环来检查my_list中的整数是否也在unique_list中,如果不是,那么我希望代码添加整数。但是我的代码将每个整数添加到unique-list 不管它是否在那里。 not in 函数是否不像我认为的那样工作?

【问题讨论】:

    标签: python arrays duplicates integer


    【解决方案1】:

    您可以使用 set 删除多次出现的整数

    >>> my_list = [1,1,1,1, 2, 3, 3, 4, 5, 6, 6, 3, 7]
    >>> list(set(my_list))
    [1, 2, 3, 4, 5, 6, 7]
    >>> 
    

    【讨论】:

      【解决方案2】:

      正如其他人指出的那样,有更简单的方法可以完成您想要做的事情,但您的错误是因为您混淆了索引和值。

      for i in range(len(my_list)):
          if i not in unique_list:
              unique_list.append(my_list[i])
      

      在上面的代码中,imy_list 中每个项目的索引,但是您将它与unique_list 中的 进行比较。其中一件事与另一件事不同!

      如果要按索引遍历,则需要使用下标运算符[] 取出my_list 中的值:

      for i in range(len(my_list)):
          if my_list[i] not in unique_list:
              unique_list.append(my_list[i])
      

      不过,按值遍历会更简单:

      for v in my_list:
          if v not in unique_list:
              unique_list.append(v)
      

      当然,这样做更简单:

      unique_list = list(set(my_list))
      

      【讨论】:

        【解决方案3】:

        您可以使用函数dict.fromkeys() 删除重复项

        >>> my_list = [1,1,1,1, 2, 3, 3, 4, 5, 6, 6, 3, 7]

        >>> list(dict.fromkeys(my_list))

        [1, 2, 3, 4, 5, 6, 7]

        【讨论】:

          猜你喜欢
          • 2013-05-30
          • 2011-01-22
          • 2019-08-23
          • 2016-05-03
          • 1970-01-01
          • 2016-07-03
          • 2021-11-14
          • 1970-01-01
          相关资源
          最近更新 更多