如何从Python中的list / set / dict中删除/删除值?

时间:2017-11-14 13:11:30

标签: python list dictionary set

我创建了一个列表,一个集合和一个字典,现在我想删除它们中的某些项目

N = [10**i for i in range(0,3)] #range(3,7) for 1000 to 1M
    for i in N:
        con_list = []
        con_set = set()
        con_dict = {}
        for x in range (i): #this is the list
            con_list.append(x)
            print(con_list)
        for x in range(i): #this is the set
            con_set.add(x)
            print(con_set)
        for x in range(i): #this is the dict
            con_dict = dict(zip(range(x), range(x)))
            print(con_dict)

要删除的项目

n = min(10000, int(0.1 * len(con_list)))
indeces_to_delete = sorted(random.sample(range(i),n), reverse=True)

现在如果我添加这个:

for a in indeces_to_delete:
     del con_list[a]
     print(con_list)

它不起作用

需要为集合和字典做同样的事情

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用pop 在词典上:

d = {'a': 'test', 'b': 'test2'}

调用d.pop('b')会删除密钥b

的键/值对 列表上的

l = ['a', 'b', 'c']

调用l.pop(2)将删除第三个元素(列表索引从0开始)

小心集:

s = {'a', 'b', 'c'}

调用s.pop()将删除此处讨论的随机元素:In python, is set.pop() deterministic?

您应该使用s.discard('a')删除元素'a'

此处有更多信息:https://docs.python.org/2/tutorial/datastructures.html