【发布时间】:2017-06-30 01:18:44
【问题描述】:
我有这个列表,由一串标签和权重组成:
lst = ['rock 101071', 'pop 69159', 'alternative 55777', 'indie 48175',
'electronic 46270', 'female vocalists 42565', 'favorites 39921',
'Love 34901', 'dance 33618', '00s 31432']
我正在尝试将其转换为元组,例如:
[('rock ', '101071'), ('pop ', '69159'), ('alternative ', '55777'), ('indie ', '48175'),
('electronic ', '46270'), ('female vocalists ', '42565'), ('favorites ', '39921'),
('Love ', '34901'), ('dance ', '33618'), ('s ', '0031432')]
这里,每个字符串被拆分为元组,每个元素的索引 0 包含除最后一个单词之外的单词,索引 1 处的元素包含字符串的最后一个单词。
为了实现这一点,我的代码是:
tags=[]
weights=[]
for i in lst:
tag = ''.join([x for x in i if not x.isdigit()])
tags.append(tag)
weight = ''.join([x for x in i if x.isdigit()])
weights.append(weight)
然后,如果我这样做:
print zip(tags, weights)
我得到了想要的结果。但不幸的是,有些标签本身是由数字组成的,比如lst中的00's。
如何正确格式化('00s ', '0031432')?
PS:作为另一种拆分方式,i.split("")并不理想,因为集合中有些标签有很多单词。
【问题讨论】:
-
所以你想拆分每个字符串的最后一个标记?你需要标签上的额外空间吗?
标签: python python-2.7 split conditional