我有一个如下所示的列表:
[
{u'self': u'https://jr.com/Option/134', u'id': u'134', u'value': u'AI'},
{u'self': u'https://jr.com/Option/135', u'id': u'135', u'value': u'E'}
]
有没有办法想出一个以逗号分隔的"值" as:AI, E
我想我可以这样做:
l = []
for x in l:
val = x['value']
l.append(val)
print l
final_l = ','.join(l)
但是想知道我是否可以用更少的代码来完成它。
答案 0 :(得分:4)
values = ','.join(item['value'] for item in lst)
演示:
>>> lst = [
... {u'self': u'https://jr.com/Option/134', u'id': u'134', u'value': u'AI'},
... {u'self': u'https://jr.com/Option/135', u'id': u'135', u'value': u'E'}
... ]
>>> values = ','.join(item['value'] for item in lst)
>>> values
u'AI,E'
答案 1 :(得分:2)
In [1]: foo = [
...: {u'self': u'https://jr.com/Option/134', u'id': u'134', u'value': u'AI'}, {u'self': u'https://jr.com/Option/135', u'id': u'135', u'value': u'E'}
...: ]
In [2]: ", ".join([x.get('value') for x in foo])
Out[2]: u'AI, E'
答案 2 :(得分:0)
','.join(['1','2','3','4'])
是基于输入列表/字符串元组创建逗号分隔序列的一种方法。在这种情况下,结果为'1,2,3,4'
在您的情况下,您的命令可能如下所示(假设您想要加入每个词典元素的值'
','.join([x['value'] for x in l])
答案 3 :(得分:0)
这种理解很容易做到:
>>> s = [
... {u'self': u'https://jr.com/Option/134', u'id': u'134', u'value': u'AI'}, {u'self': u'https://jr.com/Option/135', u'id': u'135', u'value': u'E'}
... ]
>>> ', '.join(x['value'] for x in s)
u'AI, E'