Python 3.x 如何以逗号分隔的字符串连接for循环输出?
我有一个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_
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循环之前,并将unindentjoin\u values=…
和打印(join\u values)
分为两个级别。@程序员,我不这么认为,因为上面的行包括join_values=“,”。join(map(str,example_grp))
,@Programmer我明白你的意思了,join_values行和下一行应该是多余的,以匹配循环的顶级