创建一个新列表,其中包含来自另一个列表的某些单词的以下值

时间:2017-07-18 09:19:34

标签: python list

我需要创建一个新列表,其中包含来自另一个列表的某些单词的以下值。

我的意思是,我有一个清单:

 list = ['KAZES', 'CAR', 'MOTOR', 'TWO', 'SAINT', 'MOTOR', 'DOMAIN', 'BARCELONA']

我想创建一个列表,只有“MOTOR”这个词的下一个值。像那样:

 Motor = ['TWO','DOMAIN']

3 个答案:

答案 0 :(得分:5)

对于使用列表理解的单行解决方案:

motor = [lst[i+1] for i, word in enumerate(lst[:-1]) if word == 'MOTOR']

我将两个变量重命名为:listlst因为list是内置的Python,Motormotor因为Python约定是小写变量名。

答案 1 :(得分:0)

这是未经测试的:

def next_after (seq, key):
    it = iter(seq)
    while True:
        if next(it) == key:
            yield next(it)

result = list(next_after(my_orig_list))

答案 2 :(得分:0)

我将list重命名为ls,因为list会影响python内置函数。我的方法是遍历当前列表,如果我们遇到搜索词,我们检查以确保我们不在列表的末尾,然后将下一个项目添加到最终列表。

searchWord = 'MOTOR'

final = []
for i, e in enumerate(ls):
    if e == searchWord:
        if i + 1 < len(ls):
            final.append(ls[i + 1])

希望我帮助过。