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にある文字列だけをすべてリストとして集めて、 Sorryoverviewのようなものを使用して 1 つの文字列として作成したいのですが、単語を何度も使用している場合は、誰か方法を教えてください。''.join([list_fields])これを行う

Edited Code:
  1. 「overview:」の後から「Bring your skill」の前までしか取得できません。

前もって感謝します

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 に答える