3

假设我有如下列表

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:
  1. 我们只能从“概述:”之后到“带上你的技能”之前获取吗?

提前致谢

4

4 回答 4

5

如果你知道字符串是乱写的"Overview:",你可以这样做

''.join(list_fields[list_fields.index("Overview:") + 1:])

这用于list.index()确定"Overview:"列表中的索引,并使用切片来获取从 之后的索引开始的子列表"Overview:"

于 2012-07-16T12:47:25.523 回答
3
import itertools as it

list(it.dropwhile(lambda x: not x.lower().startswith('overview'), list_fields))[1:]
于 2012-07-16T12:48:08.077 回答
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')
于 2012-07-16T12:47:53.117 回答
-1

切片应该与索引一起使用。如果未找到,这不会处理错误。

lstResults = list_fields[list_fields.index('overview'):]
于 2012-07-16T12:49:15.380 回答