我有一个set myset
,并且我有一个函数对其进行迭代以对其项目执行某些操作,并且该操作最终从该集合中删除了该项目。
显然,在迭代原始集合时我无法做到。但是,我可以这样做:
mylist = list(myset)
for item in mylist:
# do sth
有什么更好的办法吗?
首先,使用零比雷埃夫斯(Zero Piraeus)告诉我们的一套
myset = set([3,4,5,6,2])
while myset:
myset.pop()
print(myset)
我添加了print
提供这些输出的方法
>>>
set([3, 4, 5, 6])
set([4, 5, 6])
set([5, 6])
set([6])
set([])
如果您要坚持选择列表,建议您使用列表理解功能深度复制列表,并遍历该副本,同时从原始列表中删除项目。在我的示例中,我使每个循环的原始列表的长度减小。
l = list(myset)
l_copy = [x for x in l]
for k in l_copy:
l = l[1:]
print(l)
给
>>>
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
[]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句