我有
[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
答案 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']