集合转换中的顺序更改
在 Python 中将列表转换为集合时,元素的顺序似乎被修改。这可能会令人费解,因为列表维持其元素的顺序,而集合是无序的数据结构。造成这种差异的原因在于集合的基本性质。
集合旨在执行有效的成员资格测试,并且不保留元素的插入顺序。这是因为集合在内部表示为哈希表,其中元素以打乱的方式存储以便更快地查找。
如何保留顺序
如果需要保留为了保证数据集合中的顺序,有几种使用集合的替代方法:
B = set([6, 20, 1]) result = [x for x in A if x not in B]
import collections A = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210]) B = collections.OrderedDict.fromkeys([6, 20, 1]) result = collections.OrderedDict.fromkeys(x for x in A if x not in B)
以上是为什么将列表转换为集合会改变顺序,以及如何保留它?的详细内容。更多信息请关注PHP中文网其他相关文章!