Python 3.x 如何以逗号分隔的字符串连接for循环输出?

Python 3.x 如何以逗号分隔的字符串连接for循环输出?,python-3.x,Python 3.x,我有一个for循环,它遍历一个字典,然后将值存储在一个列表中,但是现在,它分别存储每个值 它创建了如下内容: example-123456 example-789012 for i in response: for k in i['Output']: for key, value in k.items(): if key == 'example-keys': example_

我有一个for循环,它遍历一个字典,然后将值存储在一个列表中,但是现在,它分别存储每个值

它创建了如下内容:

example-123456
example-789012
    for i in response:
        for k in i['Output']:
            for key, value in k.items():
                if key == 'example-keys':
                    example_grp = []
                    example_grp.append(value)
                    join_values = ",".join(map(str,example_grp))
                    print(join_values)
{
    'FilleraValue': 'filler:12345678910:filler/filler/filler',
    'AValue': 'sample-a-value',
    'Output': [{
        'BValue': 'b-b-b-value',
        'example-keys': 'example-123456'
    }, {
        'BValue': 'c-c-c-value',
        'example-keys': 'example-789012'
    }]
}
我希望格式为:

[['example-123456'], ['example-789012']]
但我似乎不明白。我的代码如下所示:

example-123456
example-789012
    for i in response:
        for k in i['Output']:
            for key, value in k.items():
                if key == 'example-keys':
                    example_grp = []
                    example_grp.append(value)
                    join_values = ",".join(map(str,example_grp))
                    print(join_values)
{
    'FilleraValue': 'filler:12345678910:filler/filler/filler',
    'AValue': 'sample-a-value',
    'Output': [{
        'BValue': 'b-b-b-value',
        'example-keys': 'example-123456'
    }, {
        'BValue': 'c-c-c-value',
        'example-keys': 'example-789012'
    }]
}
我使用的示例输出如下所示:

example-123456
example-789012
    for i in response:
        for k in i['Output']:
            for key, value in k.items():
                if key == 'example-keys':
                    example_grp = []
                    example_grp.append(value)
                    join_values = ",".join(map(str,example_grp))
                    print(join_values)
{
    'FilleraValue': 'filler:12345678910:filler/filler/filler',
    'AValue': 'sample-a-value',
    'Output': [{
        'BValue': 'b-b-b-value',
        'example-keys': 'example-123456'
    }, {
        'BValue': 'c-c-c-value',
        'example-keys': 'example-789012'
    }]
}

要实现您的目标,请执行以下操作:

for i in response:
    for k in i['Output']:
        for key, value in k.items():
            if key == 'example-keys':
                example_grp = []
                example_grp.append(value)
print(f"[{", ".join(map(str,example_grp))} ]")

除非你的实际问题比你的问题更复杂,否则这两个问题中的任何一个都会产生你想要的结果:

给定输入为:

response = [
    {
        'FilleraValue': 'filler:12345678910:filler/filler/filler',
        'AValue': 'sample-a-value',
        'Output': [
            {
                'BValue': 'b-b-b-value',
                'example-keys': 'example-123456'
            }, {
                'BValue': 'c-c-c-value',
                'example-keys': 'example-789012'
            }
        ]
    }
]
备选案文1:

results = []
for i in response:
    for k in i['Output']:
        results.append(k["example-keys"])
print(results)
备选案文2:

results = [k["example-keys"] for i in response for k in i['Output']]
print(results)
这两种选择都会产生:

['example-123456', 'example-789012']

您期望的输出是什么?尽可能多地像这样移动
['example-123456','example-789012']
到最里面的for循环之前,并将unindent
join\u values=…
打印(join\u values)
分为两个级别。@程序员,我不这么认为,因为上面的行包括
join_values=“,”。join(map(str,example_grp))
,@Programmer我明白你的意思了,join_values行和下一行应该是多余的,以匹配循环的顶级