[英]Python: Slice list into sublists, every time element begins with specific substring
[英]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.