尝试在python中使用相同的键从多个dict创建单行输出。
[{u'Value': u'nine', u'Key': u'nine'},
{u'Value': u'six', u'Key': u'six'},
{u'Value': u'four', u'Key': u'four'},
{u'Value': u'one', u'Key': u'one'},
{u'Value': u'seven', u'Key': u'seven'},
{u'Value': u'ten', u'Key': u'ten'},
{u'Value': u'two', u'Key': u'two'},
{u'Value': u'three', u'Key': u'three'},
{u'Value': u'five', u'Key': u'five'},
{u'Value': u'eight', u'Key': u'eight'}]
输出我正在寻找:
九九六六四有四一......八八或
- 醇>
九:九六:六......八:八
我尝试了各种选项single expression
答案 0 :(得分:2)
您可以使用列表理解和两次.join
调用轻松完成此操作。
data = [
{u'Value': u'nine', u'Key': u'nine'}, {u'Value': u'six', u'Key': u'six'},
{u'Value': u'four', u'Key': u'four'}, {u'Value': u'one', u'Key': u'one'},
{u'Value': u'seven', u'Key': u'seven'}, {u'Value': u'ten', u'Key': u'ten'},
{u'Value': u'two', u'Key': u'two'}, {u'Value': u'three', u'Key': u'three'},
{u'Value': u'five', u'Key': u'five'}, {u'Value': u'eight', u'Key': u'eight'}
]
row = ' '.join([':'.join([d[u'Key'], d[u'Value']]) for d in data])
print(row)
<强>输出强>
nine:nine six:six four:four one:one seven:seven ten:ten two:two three:three five:five eight:eight
如果您实际上不想要冒号,可以使用该技术的变体:
row = ' '.join([s for d in data for s in ([d[u'Key'], d[u'Value']])])
print(row)
<强>输出强>
nine nine six six four four one one seven seven ten ten two two three three five five eight eight
这可能会稍快一些,因为它只需要一次.join
次呼叫。
答案 1 :(得分:0)
如果您尝试将词典列表压缩为单个词典:
from collections import defaultdict
d = defaultdict(list)
s = [{u'Value': u'nine', u'Key': u'nine'}, {u'Value': u'six', u'Key': u'six'}, {u'Value': u'four', u'Key': u'four'}, {u'Value': u'one', u'Key': u'one'}, {u'Value': u'seven', u'Key': u'seven'}, {u'Value': u'ten', u'Key': u'ten'}, {u'Value': u'two', u'Key': u'two'}, {u'Value': u'three', u'Key': u'three'}, {u'Value': u'five', u'Key': u'five'}, {u'Value': u'eight', u'Key': u'eight'}]
for i in s:
d['Value'].append(i['Value'])
d['Key'].append(i['Key'])
print(dict(d))
输出:
{'Key': [u'nine', u'six', u'four', u'one', u'seven', u'ten', u'two', u'three', u'five', u'eight'], 'Value': [u'nine', u'six', u'four', u'one', u'seven', u'ten', u'two', u'three', u'five', u'eight']}
答案 2 :(得分:0)
如果您在python 2中工作,答案很简单:
用逗号结束打印语句。 在程序结束时,添加一个空的print语句。这将确保打印单行。
答案 3 :(得分:0)
这是另一种选择:
$args = array(
'post__in' => $menus,
'orderby' => 'ID',
'order' => 'DESC',
);
$query = new WP_Query( $args );