gpt4 book ai didi

python - 将 OrderedDict 转换为 python 中的集合

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:02 24 4
gpt4 key购买 nike

我有一个像这样的 OrderedDict:

OrderedDict([
(1666, [
['2ZNV', 'EDO1', 14, '2FCN', 'CD', 119],
['2ZNV', 'EDO', 14, '2FCN', 'CD', 119]]),
(1056, [['2ZNV', 'EDO', 32, '2FCN','CD', 33]]),
(266, [['2ZNV', 'EDO', 14, '2FCN', 'CD', 19]]),
(171, [
['2ZNV', 'ZN', 9, '2FCN', 'DVA', 19],
['2ZNV', 'ZN', 9, '2FCN', 'CD', 19],
['2ZNV', 'ZN', 9, '2FCN', 'ACT', 19],
['2ZNV', 'EDO', 9, '2FCN', 'CD', 19],
['2ZNV', 'EDO', 9, '2FCN', 'DVA', 19]]),
(45, [
['2ZNV','EDO', 9, '2X8L', 'GOL', 5],
['2ZNV', 'ZN', 9, '2X8L', 'GOL', 5]]),
(6, [['2ZNV', 'EDO', 2, '2FCN', 'CD', 3]]),
(1, [['2ZNV', 'EDO', 1, '2FCN', 'CD', 1]])
])

是否可以添加集合中的所有值但保持顺序?

我尝试转换为列表,然后从元组转换为这样的设置:

for k,v in od.items():
listset.append(v)
flat = [item for sublist in listset for item in sublist]
xx = set(tuple(x) for x in flat)
print xx

但这并不保持顺序。上面的结果是:

set([
('2ZNV', 'ZN', 9, '2FCN', 'DVA', 19),
('2ZNV', 'EDO', 14, '2FCN', 'CD', 119),
('2ZNV', 'EDO', 9, '2X8L', 'GOL', 5),
('2ZNV', 'EDO', 32, '2FCN', 'CD', 33),
('2ZNV', 'EDO', 9, '2FCN', 'DVA', 19),
('2ZNV', 'ZN', 9, '2FCN', 'ACT', 19),
('2ZNV', 'EDO', 9, '2FCN', 'CD', 19),
('2ZNV', 'EDO', 1, '2FCN', 'CD', 1),
('2ZNV', 'EDO', 14, '2FCN', 'CD', 19),
('2ZNV', 'ZN', 9, '2X8L', 'GOL', 5),
('2ZNV', 'EDO1', 14, '2FCN', 'CD', 119),
('2ZNV', 'EDO', 2, '2FCN', 'CD', 3),
('2ZNV', 'ZN', 9,'2FCN', 'CD', 19)
])

提前谢谢您。

最佳答案

您可以使用此配方中的 OrderedSet https://code.activestate.com/recipes/576694/ 。只是

OrderedSet([tuple(item) for sublist in od.values() for item in sublist])

关于python - 将 OrderedDict 转换为 python 中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47436956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com