2017-08-26 35 views
1

我想遍歷列表的列表。對於更廣泛的列表中的每個列表清單,我希望循環直到第一列包含字符串「Career」的行開始運行。循環顯示錶行的列表,直到行包含特定的字符串?

因此,舉例來說,這裏是列表的名單,我目前正在生產的列表:

list_of_lists_of_lists = [[[Joe, 2, 3, 5, 6], 
[Joe, 5, 6, 2, 5], 
[Joe, 5, 7, 2, 2], 
["Career, 24, 234, 2, 53]], 
[[Brian, 2, 3, 5, 6], 
[Brian, 5, 6, 2, 5], 
[Brian, 5, 7, 2, 2], 
["Career, 24, 234, 2, 53], 
["String", 3, 2, 3, 4], 
["Spaghetti, 3, 2, 2, 6]], 
[[Tom, 2, 3, 5, 6], 
[Tom, 5, 6, 2, 5], 
[Tom, 5, 7, 2, 2], 
["Career, 24, 234, 2, 53], 
["String, 3, 2, 3, 2]]] 

如此反覆,在這些例子中,對於更廣泛的列表中列出的每個列表,我想不要在「Career」一行中閱讀,也不要在該行下面的任何地方閱讀。

注意:我不能簡單地刪除最後一行,因爲在「職業」行下面有多行,比如「String」和「Spaghetti」。

回答

3

可以使用break聲明:

def my_funct(data): 
    for i in data: 
     if "Career" in i: 
      break 
     else: 
      yield i 

print(list(my_funct(list_of_lists_of_lists))) 

輸出:

[[[Joe, 2, 3, 5, 6], 
    [Joe, 5, 6, 2, 5], 
    [Joe, 5, 7, 2, 2], 

注意,爲了讓此解決方案工作,你在列表中的字符串將不得不重新格式化,這樣所有的都用引號包裹。

+0

This Works。非常感謝!! – TJE

+0

@ThomasErnste樂於幫助! – Ajax1234

相關問題