如果数组中不存在该项,则将项添加到数组中

17

如果数组中不存在该项,如何将其插入?

这是我尝试过的代码:

    [..]
    k = []
    for item in myarray:
        if not item in k:
             print("Item is in array already.")
             k[] = item

1
我认为你在使用一些奇怪的语法,可能是因为你认为Python中数组是内置类型,并且你从其他你知道的编程语言中携带了这种语法。但实际上它们不是。Python中的内置类型叫做列表(list)。 - Shashank
3个回答

33

你的代码思路是正确的,但只需使用k.append(item)而不是k[] = item

此外,更简洁的写法是if item not in k:


10

k[] = item 是无效的语法。你所需要做的就是删除那行代码并使用 list.append()

for item in myarray:
    if not item in k:
        print("Item is in array already.")
        k.append(item)

list.append() 将一个项目添加到列表的末尾。


2
如果您不关心列表中项目的顺序,可以将其转换为集合以过滤任何重复项。 k = list(set(myarray)) 或者如果k已经包含了一些内容...
k = [...]  # optionally non-empty array
k = list(set(k) | set(myarray))

这样做的作用是将myarray和k都转换成集合,然后将它们组合在一起,使得结果是一个包含k和myarray内容的独特列表。


关于“如果你不在意顺序...”,你不应该使用Python的list()。如果你不在意顺序,总是使用set(),但这并没有回答OP的问题。 - Mike Pennington
此外,它无法处理包含不可哈希类型的数组,例如数组中的'dict',但了解这一点很有好处。 - Ulysses

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接