我有几个这样的字符串:
mylist = ['pearsapple','grapevinesapple','sinkandapple'...]
我想在apple之前解析部分,然后附加到新列表中:
new = ['pears','grapevines','sinkand']
除了找到“苹果”的出发点之外,还有其他方法吗?在每个字符串中然后在起点之前附加?
答案 0 :(得分:2)
将切片与index
字符串方法结合使用。
>>> [x[:x.index('apple')] for x in mylist]
['pears', 'grapevines', 'sinkand']
您也可以使用正则表达式
>>> import re
>>> [re.match('(.*?)apple', x).group(1) for x in mylist]
['pears', 'grapevines', 'sinkand']
我不明白为什么。
答案 1 :(得分:2)
我希望apple
这个词会被修复(固定长度的单词),然后我们可以使用:
second_list = [item[:-5] for item in mylist]
答案 2 :(得分:2)
如果列表中的某些元素在字符串的末尾不包含'apple'
,则此正则表达式保持字符串不变:
>>> import re
>>> mylist = ['pearsapple','grapevinesapple','sinkandapple', 'test', 'grappled']
>>> [re.sub('apple$', '', word) for word in mylist]
['pears', 'grapevines', 'sinkand', 'test', 'grappled']
答案 3 :(得分:1)
还使用字符串拆分和列表理解
new = [x.split('apple')[0] for x in mylist]
['pears', 'grapevines', 'sinkand']
答案 4 :(得分:0)
一种方法是迭代列表中的每个字符串,然后使用split()
字符串函数。
for word in mylist:
word = word.split("apple")[0]