python-3.x Itertools按键/值对对可变长度的字典列表进行分组[已关闭]

jtw3ybtb  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(105)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

昨天关门了。
Improve this question
我有这个输入对象:

vv = [{'values': ['AirportEnclosed', 'Bus', 'MotorwayServiceStation']},{'values': ['All']}]

......可能存在可变数量的指令,但所有指令都将始终具有关键字“值”和为此填充的值。
赋值给'values'的值的类型总是string或list。我希望对/zip进行分组,这样我就得到了以下输出(tuple的list或tuple的tuple都可以):

(
('AirportEnclosed', 'All'),
('Bus', 'All'),
('MotorwayServiceStation', 'All')
)

......这是我的密码:

import itertools

outputList=[]
for i,g in itertools.groupby(vv, key=operator.itemgetter("values")):
    outputList.append(list(g))
print(outputList)

......这是我的输出:

[[{'values': ['AirportEnclosed', 'Bus', 'MotorwayServiceStation']}], [{'values': ['All']}]]

...我需要改变什么?

b4wnujal

b4wnujal1#

import itertools as it

vv = [{'values': ['AirportEnclosed', 'Bus', 'MotorwayServiceStation']}, 
{'values': ['All']}]

tmp = []

for curr_dict in vv:
    val = curr_dict["values"]
    if type(val) == str:
        val = [val]
    tmp.append(val)

pr = it.product(*tmp)
out = []

for i in pr:
    out.append(i)

相关问题