转换为集合时保留列表顺序
在Python中将列表转换为集合时,元素顺序可能会因集合而改变是无序的数据结构。如果您需要保留原始订单,此行为可能会很不方便。
集合旨在提供快速会员查找通过将元素存储为哈希值。元素添加到集合中的顺序不会保留,因此当您将列表转换为集合时,元素会重新排序以优化查找效率。
一个。列表推导式
如果您需要从列表中删除特定元素,同时保留顺序,则可以使用列表推导式。例如:
a = [1, 2, 20, 6, 210] b = set([6, 20, 1]) result = [x for x in a if x not in b] # [2, 210]
b。 OrderedDict (Python 3.7 )
对于 Python 3.7 及更高版本,您可以使用 collections.OrderedDict 创建有序集。即使在设置操作之后,它也能保持元素顺序。
from collections import OrderedDict a = OrderedDict.fromkeys([1, 2, 20, 6, 210]) b = OrderedDict.fromkeys([6, 20, 1]) result = OrderedDict.fromkeys(x for x in a if x not in b) # OrderedSet([(2, None), (210, None)])
c. OrderedSet(较旧的Python版本)
在较旧的Python版本中,您可以使用orderedset包来实现类似的功能:
import orderedset a = orderedset.OrderedSet([1, 2, 20, 6, 210]) b = orderedset.OrderedSet([6, 20, 1]) result = orderedset.OrderedSet(x for x in a if x not in b)
通过使用这些技术,您可以执行集合操作同时保留原始列表顺序。
以上是Python中转换为集合后如何保持列表顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!