簡體   English   中英

一行python代碼可返回特定列中包含特定子字符串的列表的所有子列表

[英]One line python code to return all sublists of list containing specific substring in a particluar column

我想返回列表的所有子列表,這些列表在特定列中包含特定子字符串:

例如:

List=[["2006ab","2005ac"],["2005ab","2004ac"],["2006ab","2005ac"],["2006ab","2003ac"],["2006ab","2005ac"]]

搜索條件:返回所有在第二索引處包含子字符串2005的子列表。

輸出:

[["2006ab","2005ac"],["2006ab","2005ac"],["2006ab","2005ac"]]

我嘗試使用:

  matching = [s for s in List if "2005" in s[1]]

但它返回:

[["2006ab","2005ac"],["2005ab","2004ac"],["2006ab","2005ac"],["2006ab","2005ac"]]

您的列表理解方法很好,並且給出了正確的結果。 您確定您的代碼與粘貼輸出的代碼相同,因為它對我有用:

>>> List=[["2006ab","2005ac"],["2005ab","2004ac"],["2006ab","2005ac"],["2006ab","2003ac"],["2006ab","2005ac"]]
>>> [sublist for sublist in List if '2005' in sublist[1]]
[['2006ab', '2005ac'], ['2006ab', '2005ac'], ['2006ab', '2005ac']]

和你想要的一樣

如果您正在尋找替代方法,則可以使用filter()

>>> filter(lambda x: '2005' in x[1], List)
[['2006ab', '2005ac'], ['2006ab', '2005ac'], ['2006ab', '2005ac']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM