【问题标题】:How to split a dictionary into a list of multiple dictionaries, all of size N in Python如何将字典拆分为多个字典的列表,在 Python 中全部为 N
【发布时间】:2023-03-22 10:24:02
【问题描述】:

假设我有一个简单的 Python 字典,如下所示:

{'location1': [1], 'location2': [1], 'location3': [1], 'location4': [1], 'location5': [1]}

我的目标是将这个字典拆分成一个字典列表,所有字典的大小都是特定的 N,除了最后一个字典的大小,如果字典中没有足够的元素,它可能小于 N。所以 N = 2 会产生:

[{'location1': [1], 'location2': [1]}, {'location3': [1], 'location4': [1]}, {'location5': [1]}]

虽然 N = 3 会产生:

[{'location1': [1], 'location2': [1], 'location3': [1]}, {'location4': [1]}, 'location5': [1]}]

我已经尝试过,但找不到这样做的方法。请注意,每个切片/批次中的位置对我来说并不重要,只要它们在切片之间均匀分布即可。

【问题讨论】:

  • 你尝试了什么?

标签: python dictionary slice


【解决方案1】:

试试这样的:

n = 2 # the desired # of parts
items = list(d.items())
y = [dict(items[x:x+n+1]) for x in range(0, len(d), n+1)]

【讨论】:

  • d.items() 上直接切片而不转换为列表?
  • @MarkRansom ikr?但由于某种原因,它对我不起作用,所以我就这样做了..
  • 还需要查看订单。由于 dict 没有排序,可能需要一个带有排序键的循环或使用 OrderedDict
  • 这很有趣,我自己试了一下,没用,如你所说。
  • @BeliaevMaksim 这个问题听起来好像顺序无关紧要。
猜你喜欢
  • 2011-05-04
  • 2021-09-09
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2020-04-23
相关资源
最近更新 更多