Python:集合列表中以逗号分隔的列表

时间:2016-02-04 21:49:08

标签: python list

我有一个如下所示的列表:

[
  {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)

但是想知道我是否可以用更少的代码来完成它。

4 个答案:

答案 0 :(得分:4)

由于comprehension

,您可以保存几行
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'