Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列表转换为逗号分隔的字符串_Python_String - Fatal编程技术网

Python 将列表转换为逗号分隔的字符串

Python 将列表转换为逗号分隔的字符串,python,string,Python,String,以下是我的清单: >>> issue_search [<JIRA Issue: key=u'NEC-1519', id=u'991356'>, <JIRA Issue: key=u'NEC-1516', id=u'991344'>, <JIRA Issue: key=u'NEC-1518', id=u'990463'>] >>> 但结果是: NEC-1519, NEC-1516, NEC-1518 我对输出感到困惑。如何

以下是我的清单:

>>> issue_search
[<JIRA Issue: key=u'NEC-1519', id=u'991356'>, <JIRA Issue: key=u'NEC-1516', id=u'991344'>, <JIRA Issue: key=u'NEC-1518', id=u'990463'>]
>>>
但结果是:

NEC-1519, NEC-1516, NEC-1518

我对输出感到困惑。如何仅显示按键?如何获得字符串格式的其他文本?

列表中显示的是每个对象的属性返回的值。如果需要这些值,请将列表映射到而不是str:

下面是十进制的演示。十进制:

在加入问题搜索中的对象之前,您正在对这些对象调用str。所以很明显,str对“JIRA问题”的呼吁只会导致关键

str的返回值由对象的_str__方法确定,该方法很可能以“JIRA Issue”类型的描述方式定义。如果无法更改方法,也可以对对象调用repr,或者指定自定义格式函数:

>>> ', '.join(map(lambda x: '{} ({})'.format(x.key, x.id), issue_search))
'NEC-1519 (991356), NEC-1516 (991344), NEC-1518 (990463)'

这不是有效的Python语法。您是如何获得该输出的?您是否检查了_ustr_uuuuuuuuuuu或uuuu repr_uuuuuuu方法?在最后的示例中,您不应该映射lambda函数,而应该在issue\u search中使用生成器表达式:,.join{}{}.formatx.key,x.id for x。如果您正在应用的函数已经存在,就像您在使用str或repr时一样,map的函数样式实际上是比genexp或list/dict/set更好的选择。
issue_string = ','.join(map(repr, issue_search))
>>> from decimal import Decimal
>>> lst = [Decimal('1.2'), Decimal('3.4'), Decimal('5.6')]
>>> lst
[Decimal('1.2'), Decimal('3.4'), Decimal('5.6')]
>>> print ','.join(map(str, lst))
1.2,3.4,5.6
>>> print ','.join(map(repr, lst))
Decimal('1.2'),Decimal('3.4'),Decimal('5.6')
>>>
>>> ', '.join(map(lambda x: '{} ({})'.format(x.key, x.id), issue_search))
'NEC-1519 (991356), NEC-1516 (991344), NEC-1518 (990463)'