我認爲這可能與設置爲mutable
有關。如何從集合中刪除元素?
基本上,我可以使用set.discard(element)
從一組中刪除一個元素。但是,set.discard(element)
本身返回None
。但我想獲得更新集的副本。例如,如果我有一組列表,如何使用列表理解操作方便地獲取更新副本?
示例代碼:
test = [{'', 'a'}, {'b', ''}]
print [x.discard('') for x in test]
print test
將返回
[None, None]
[set(['a']), set(['b'])]
SOF就是這樣一個神奇的地方! @thefourtheye和@roippi的答案都很好! @roippi答案具有速度優勢,可能也有更廣泛的應用。我接受@thefourtheye答案只是因爲它適用於我的情況,其中列表是從列表中生成的。所以我可以簡單編寫'[set(x) - {''} for x in list]'。但非常感謝你們兩位! –
列表理解是否應該產生獨立的集合列表,而不需要修改原始集合,還是應該修改原始集合?如果你想修改原文,最好不要使用列表理解; 'for'循環更適合。 – user2357112
@ user2357112我想修改原文(它並不重要,但由於數據集很大,我不想創建副本)。在這種情況下,for循環比列表理解更好的原因是什麼? –