一行 python 代码 return 包含特定列中特定子字符串的列表的所有子列表
One line python code to return all sublists of list containing specific substring in a particluar column
我想 return 列表的所有子列表,其中包含特定列中的特定子字符串:
例如:
List=[["2006ab","2005ac"],["2005ab","2004ac"],["2006ab","2005ac"],["2006ab","2003ac"],["2006ab","2005ac"]]
搜索条件:Return 在第二个索引处包含子字符串 2005 的所有子列表。
输出:
[["2006ab","2005ac"],["2006ab","2005ac"],["2006ab","2005ac"]]
我尝试使用:
matching = [s for s in List if "2005" in s[1]]
但是 returns:
[["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']]
我想 return 列表的所有子列表,其中包含特定列中的特定子字符串:
例如:
List=[["2006ab","2005ac"],["2005ab","2004ac"],["2006ab","2005ac"],["2006ab","2003ac"],["2006ab","2005ac"]]
搜索条件:Return 在第二个索引处包含子字符串 2005 的所有子列表。
输出:
[["2006ab","2005ac"],["2006ab","2005ac"],["2006ab","2005ac"]]
我尝试使用:
matching = [s for s in List if "2005" in s[1]]
但是 returns:
[["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']]