在列表中用逗号分隔unicode

时间:2015-07-23 08:07:21

标签: python list unicode split

我有

[u'1,3,9,31,5,17']

我想要

[u'1', u'3', u'9', u'31', u'5', u'17']

是否有能为我这样做的功能? 我尝试了self.plot_input.split(','),但这不起作用,因为self.plot_input是一个列表。是否有i.text()的替代方案可以立即提供所需的输出?

        if item.checkState() == QtCore.Qt.Checked:
            data = []
            data.append(self.flist.item(index))                  
            self.plot_input = [i.text() for i in data]          #converting QListWidgetItem to list

4 个答案:

答案 0 :(得分:2)

这是一个包含您可以拆分的元素的列表。所以使用:

l = [u'1,3,9,31,5,17']
l[0].split(',')

如果您有多个元素,则可以使用chain.from_iterable

>>> list(chain.from_iterable(s.split(',') for s in [u'1,2,3', u'4,5,6']))
[u'1', u'2', u'3', u'4', u'5', u'6']

答案 1 :(得分:2)

为什么只用一个元素创建列表data?您可以直接致电.split(',')上的self.flist.item(index).text(),然后将其存储在self.plot_input

示例 -

if item.checkState() == QtCore.Qt.Checked:
    self.plot_input = self.flist.item(index).text().split(',')

答案 2 :(得分:1)

试试这个,

self.plot_input =[u'1,3,9,31,5,17']

self.plot_input [0].split(',')

这会有效吗

答案 3 :(得分:1)

>>> a1 = [u'1,3,9,31,5,17']
>>> reduce(lambda x,y:x+y, [s.split(',') for s in a1])
[u'1', u'3', u'9', u'31', u'5', u'17']
>>>
>>> a2 = [u'1,3,9,31,5,17', u'100,102']
>>> reduce(lambda x,y:x+y, [s.split(',') for s in a2])
[u'1', u'3', u'9', u'31', u'5', u'17', u'100', u'102']