假设我有以下列表
list_fields = ['Full-Time',
'Options:',
'Express your interest',
'Email this to a friend',
'More information about this job:',
'Overview:',
'A',
'Parasite',
'position is cool',
'Are you a LEADER?',
'For sure there',
'Hello doing?',
'If so you will EXCEL.',
'Bring your skills',
'programs and procedures']
我想要做的是收集overview
之后的所有字符串,我的意思是需要忽略overview
字符串之前的字符串。 overview
之前和之后可能有很多字符串,但是只想在overview
作为列表之后收集所有字符串,并希望通过使用类似''.join([list_fields])
之类的字符串将它们作为单个字符串
对不起,如果我一次又一次地使用文字,任何人都可以告诉我如何做到这一点
Edited Code:
提前致谢
答案 0 :(得分:5)
如果您知道字符串是"Overview:"
,那么您可以
''.join(list_fields[list_fields.index("Overview:") + 1:])
这使用list.index()
来确定列表中"Overview:"
的索引,并使用切片从"Overview:"
之后的索引处获取子列表。
答案 1 :(得分:3)
import itertools as it
list(it.dropwhile(lambda x: not x.lower().startswith('overview'), list_fields))[1:]
答案 2 :(得分:2)
a = [1,2,3,4,5,6,7,8]
a[a.index(4):]
>> [4, 5, 6, 7, 8]
所以在你的情况下,你可以这样做:
"".join(list_fields[list_fields.index("Overview:"):])
回答评论中的问题:
def my_slice(l,a,b):
try:
a_idx = l.index(a)
b_idx = l.index(b)
except ValueError:
return []
if a_idx > b_idx:
a_idx, b_idx = b_idx, a_idx
return l[a_idx:b_idx+1]
my_slice(list_fields,'Overview:','Bring your skills')
答案 3 :(得分:-1)
切片应该与索引一起使用。如果找不到,则无法处理错误。
lstResults = list_fields[list_fields.index('overview'):]