在不影响原始Python的情况下更改一次性列表

时间:2018-02-28 21:40:18

标签: python python-3.x

我正在尝试通过将列表存储在第二个变量中并从列表中删除一个项目然后检查列表中是否还有该项目的副本来检查列表中的重复内容。这就是我所拥有的:

df %>%
    mutate(binGroupSize = cut(Group_Size, breaks = seq(0, 100, by = 20))) %>%
    group_by(binGroupSize) %>%
    summarise(ratioSum = sum(Group_Claims) / sum(Group_Premium)) %>%
    complete(binGroupSize) %>%
    ggplot(aes(binGroupSize, ratioSum)) + geom_bar(stat = "identity")

问题是当它从disposableList中删除i时,它也会从List中删除它。有没有办法在不影响原始列表的情况下执行此操作?

2 个答案:

答案 0 :(得分:1)

您是否有理由不想使用内置列表功能a = [1,2,3,4,4,5,5,5] for i in a: if a.count(i) > 1: print("The list contains a duplicate:", i) ?想象一下,您有以下设置:

a = [1,2,3,4,4,5,5,5]
b = set(a)
print(b)

或者甚至更好,如果您尝试创建没有重复项的列表,请使用内置集类型:

"{1, 2, 3, 4, 5}"

这将输出b=a.copy()

如评论中所述,如果您仍然真的想要出于某种原因复制列表,请使用b=ab只是a到{{1}的引用如果两者都是列表。这就是为什么改变一个中的东西会改变另一个。)

答案 1 :(得分:0)

我想指出的第一件事是你使用变量名list。这是一个危险的变量名称,因为list实际上是python中的一个函数,如果你在python中输入它,你会发现它会变成紫色。将名称list分配给变量后,您将无法再使用该功能的功能。出于解释的目的,我将使用名称my_list

此外,disposableList = my_list不会创建您正在使用的列表的副本。它只是将原始列表存储在一个新的变量名下。

您会发现使用for循环来替换disposableList = my_list会更好,因为它会遍历原始列表并将每个项目放在新列表中。

我还建议使用break函数,因为您可以退出循环并在找到某些要求后继续执行代码。

以下是我为您处理过的代码:

my_list = [1,2,3,4,5,5]
disposableList = []
for i in my_list:
    disposableList.append(i)
for i in my_list:
    disposableList.remove(i)
    if i in disposableList:
        break
祝你好运!

约旦。