2024-10-02 00:40:56 发布
网友
我有一个集合myset,我有一个函数遍历它对它的项执行一些操作,这个操作最终会从集合中删除该项。
myset
很明显,我不能在迭代原始集合的时候做这件事。不过,我可以这样做:
mylist = list(myset) for item in mylist: # do sth
有更好的办法吗?
让我们在修改当前集时返回所有偶数。
myset = set(range(1,5)) myset = filter(lambda x:x%2==0, myset) print myset
会回来的
>>> [2, 4]
如果有机会的话,利用机会,总是利用机会,这会使你的生活更容易。
首先,按照比雷埃夫斯告诉我们的,用一套,你可以
myset = set([3,4,5,6,2]) while myset: myset.pop() print myset
我添加了一个打印方法来提供这些输出
>>> 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] []
这应该管用:
while myset: item = myset.pop() # do something
或者,如果需要有条件地删除项:
def test(item): return item != "foo" # or whatever myset = set(filter(test, myset))
让我们在修改当前集时返回所有偶数。
会回来的
如果有机会的话,利用机会,总是利用机会,这会使你的生活更容易。
首先,按照比雷埃夫斯告诉我们的,用一套,你可以
我添加了一个打印方法来提供这些输出
如果你想坚持自己对列表的选择,我建议你使用列表理解来深入复制列表,并在副本上循环,同时从原始列表中删除项目。在我的例子中,我使原始列表的长度在每个循环中减少。
给予
这应该管用:
或者,如果需要有条件地删除项:
相关问题 更多 >
编程相关推荐