Python 连接每个字典值中的字符串列表

Python 连接每个字典值中的字符串列表,python,pandas,list,dictionary,list-comprehension,Python,Pandas,List,Dictionary,List Comprehension,从包含产品线项目(嵌入MDX查询格式)和产品类别代码的Pandas数据框df3pa中,我有一个字典uni3pa,其中产品类别代码code作为字典键,字符串列表Item(MDX格式)作为值 uni3pa = df3pa.groupby('Code')['Item'].apply(list).to_dict() uni3pa的一小部分: uni3pa = {'3PA SMARTPAY': ['[Item].[Item].[10006543 - Smartpay User Licence]', '

从包含产品线项目(嵌入MDX查询格式)和产品类别代码的Pandas数据框
df3pa
中,我有一个字典
uni3pa
,其中产品类别代码
code
作为字典
,字符串列表
Item
(MDX格式)作为

uni3pa = df3pa.groupby('Code')['Item'].apply(list).to_dict()
uni3pa的一小部分

uni3pa = 
{'3PA SMARTPAY': ['[Item].[Item].[10006543 - Smartpay User Licence]',
'[Item].[Item].[10006544 - SmartPay User Licence per Site]'],
'3PA OTHER': ['[Item].[Item].[10001234 - 3rd Party App User Licence]', 
'[Item].[Item].[10001235 - 3rd Party App User Licence (min 3 per site]',
'[Item].[Item].[10001236 - 3rd Party Apps Single User]']}
我追求的最终结果是,使用
'+'
将每个
键中的所有值连接起来,以生成一个可以使用的MDX查询,例如:

uni3pa['3PA OTHER'] = '[Item].[Item].[10001234 - 3rd Party App User 
Licence] + [Item].[Item].[10001235 - 3rd Party App User Licence (min 3 per site] + 
[Item].[Item].[10001236 - 3rd Party Apps Single User]'
使用(我使用了许多其他产品,但这是我在本期中能找到的最有帮助的产品)我已经能够为每个产品分组创建数组,如下所示:

array = []
for el in [' + '.join(value) for key, value in uni3pa.items()]:
    array.append(el)

In [46]: array[2]
Out[46]: '[Item].[Item].[10001234 - 3rd Party App User Licence] + 
[Item].[Item].[10001235 - 3rd Party App User Licence (min 3 per site] + 
[Item].[Item].[10001236 - 3rd Party Apps Single User]'

#for clarity, array[2] is '3PA OTHER'
我在这里选择了数组,因为这是将所有组转换为所需格式的最简单方法。但是,有100个组,如果我能够通过组名(例如
3PA OTHER
,而不是
array[2]
)来识别它们,那就容易多了


在字典中必须有一种更简单的方法来实现这一点,这样我就可以调用
uni3pa['3PA OTHER']
,并且该值是所需的格式?

这是通过将列表理解更改为字典理解来实现的:

>>> uni3pa = {'3PA SMARTPAY': ['[Item].[Item].[10006543 - Smartpay User Licence]',
'[Item].[Item].[10006544 - SmartPay User Licence per Site]'],
'3PA OTHER': ['[Item].[Item].[10001234 - 3rd Party App User Licence]', 
'[Item].[Item].[10001235 - 3rd Party App User Licence (min 3 per site]',
'[Item].[Item].[10001236 - 3rd Party Apps Single User]']}

>>> {k: ' + '.join(v) for k, v in uni3pa.items()}
    {'3PA SMARTPAY': '[Item].[Item].[10006543 - Smartpay User Licence] + [Item].[Item].[10006544 - SmartPay User Licence per Site]',
     '3PA OTHER': '[Item].[Item].[10001234 - 3rd Party App User Licence] + [Item].[Item].[10001235 - 3rd Party App User Licence (min 3 per site] + [Item].[Item].[10001236 - 3rd Party Apps Single User]'}