我需要创建一个新列表,其中包含来自另一个列表的某些单词的以下值。
我的意思是,我有一个清单:
list = ['KAZES', 'CAR', 'MOTOR', 'TWO', 'SAINT', 'MOTOR', 'DOMAIN', 'BARCELONA']
我想创建一个列表,只有“MOTOR”这个词的下一个值。像那样:
Motor = ['TWO','DOMAIN']
答案 0 :(得分:5)
对于使用列表理解的单行解决方案:
motor = [lst[i+1] for i, word in enumerate(lst[:-1]) if word == 'MOTOR']
我将两个变量重命名为:list
到lst
因为list
是内置的Python,Motor
是motor
因为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])
希望我帮助过。