在python中花时间前后打印字符

时间:2019-02-26 05:52:38

标签: python python-3.x python-2.7 while-loop itertools

我有一个python列表,需要在其中做一些工作。我得到的输出为

UIApplication.shared.beginBackgroundTask,但我需要获得['fd', 'dfdf', 'keyword', 'ssd', 'sdsd']

['3=', 'fd', 'dfdf', 'keyword', 'ssd', 'sdsd', ';']

1 个答案:

答案 0 :(得分:1)

takewhile的问题是要获得满足条件的元素。

您可以尝试执行此操作(如果我正确理解了您的问题)

l = [1, 2, "3=",  "fd", "dfdf", "keyword", "ssd", "sdsd", ";", "dds"]

it = iter(l)

first_index = next(i for i, item in enumerate(it) 
                   if isinstance(item, str) and '=' in item)
last_index = next(i for i, item in enumerate(it, start=first_index+1) 
                  if isinstance(item, str) and ';' in item)

print(l[first_index:last_index + 1])

这将创建一个迭代器it(这样就不会再次检查已根据拳头条件检查的item)。

其余的应该很简单

this answer可能也有帮助。