【问题标题】:Python function/listsPython 函数/列表
【发布时间】:2020-04-04 23:04:58
【问题描述】:

我如何创建一个向空列表添加内容的函数,但如果该值已存在于该列表中,则无法添加它,并且必须转到另一个空列表。我试过了,但这并没有考虑到 x 以外的值是否已经在列表中

List = []
leftover = []
x = 2

def add(x):
    if myUniqueList[0:] == []:
        myUniqueList.append(x)
        print("True")
        print(myUniqueList)
    elif myUniqueList[0:] == [x]:
        leftover.append(x)
        print("False")
        print(leftover)

add(x)

【问题讨论】:

  • 了解运营商in 以及如何使用它来检查x 是否已经在列表中。
  • 什么是myUniqueList?此外,最好遵循 PEP-8 并将 underscore_seperated_names 用于变量而不是 CamelCase

标签: python list function


【解决方案1】:

这可能有效。通过使用if x not in 语法,我们可以轻松检查该号码是否在现有列表中。 如果它不在列表中,我们就追加它。如果它在列表中,我们将其附加到剩余列表中。

mylist = []                                                                                                                                                           
leftover = []
x = 2    

def add(x): 
    if x not in mylist: 
        mylist.append(x) 
        print('True') 
        print(mylist) 
    else: 
        leftover.append(x) 
        print('False') 
        print(leftover)                           

add(x)  

集合与列表:

如果您使用大量数字序列,则会对性能产生一些影响。在这种情况下,将数字存储在 Python set() 中将大大加快查找该数字是否已存在的速度。这是由于 Python 在 setslists 中存储数字的方式。

myset = set()                                                                                                                                                   
leftover = []
x = 2    

def add(x): 
    if x not in mylist: 
        mylist.add(x)      # sets use .add() instead of .append() 
        print('True') 
        print(myset)       
        print(list(myset)) # IF you need to print out a list, you can 
                           # convert sets to lists by encapsulating 
                           # the myset with the list() factory function
                           # BUT if you do this every cycle you prolly
                           # start to lose the performance benefits.
    else: 
        leftover.append(x) 
        print('False') 
        print(leftover)                           

add(x)

【讨论】:

    【解决方案2】:
    List = []
    leftover = []
    x = 2
    
    def add(x):
        if x in myUniqueList:
            print("False")
            print(leftover)
            leftover.append(x)
        else:
            myUniqueList.append(x)
            print("True")
            print(myUniqueList)
    
    add(x)
    

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 2014-04-01
      • 1970-01-01
      • 2016-01-14
      • 2017-07-25
      • 1970-01-01
      • 2020-10-25
      • 2013-02-19
      • 2021-12-19
      相关资源
      最近更新 更多