我创建了一个列表,一个集合和一个字典,现在我想删除它们中的某些项目
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)
它不起作用
需要为集合和字典做同样的事情
谢谢!
答案 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