Python 筛选具有特定内容的子列表的列表列表
目前,我正在尝试筛选一个具有52:3维度的二维列表。我想根据行筛选列表 输入列表的示例行包括:Python 筛选具有特定内容的子列表的列表列表,python,Python,目前,我正在尝试筛选一个具有52:3维度的二维列表。我想根据行筛选列表 输入列表的示例行包括: list = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']] 当行中存在两个空格(“”)时,列表筛选的输出需要为空。它需要保留该行并将该行放入新变量中。因此,示例输出为: new = [[u'Fe', '', ''],[u'Ca', '', '']] 一些建议: 不要使用变量名list,因为这样会给内置列表添加阴影 这里有一个列表列表,其中
list = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']]
当行中存在两个空格(“”)时,列表筛选的输出需要为空。它需要保留该行并将该行放入新变量中。因此,示例输出为:
new = [[u'Fe', '', ''],[u'Ca', '', '']]
一些建议:
不要使用变量名list
,因为这样会给内置列表添加阴影
这里有一个列表列表,其中一些列表包含空字符串'
,而不是空格,即'
也就是说,您可以计算任何子列表x
包含多少空字符串,如果该计数等于2,请借助列表理解将其放入新列表:
>>> lst = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']]
>>> result = [x for x in lst if x.count('') == 2]
>>> result
[[u'Fe', '', ''], [u'Ca', '', '']]
请注意,由于我们没有在此处复制任何内容,因此在所有引用/名称中都会看到对子列表的更改:
>>> result[0][0] = 'Xe'
>>> result
[['Xe', '', ''], [u'Ca', '', '']]
>>> lst
[[u'Kr', u'Se', ''], ['Xe', '', ''], [u'Ca', '', '']]
如果不需要此行为,请在列表理解中创建列表副本(与上一示例的唯一区别是使用x[:]
而不是x
):
一些建议:
不要使用变量名list
,因为这样会给内置列表添加阴影
这里有一个列表列表,其中一些列表包含空字符串'
,而不是空格,即'
也就是说,您可以计算任何子列表x
包含多少空字符串,如果该计数等于2,请借助列表理解将其放入新列表:
>>> lst = [[u'Kr', u'Se', ''],[u'Fe', '', ''],[u'Ca', '', '']]
>>> result = [x for x in lst if x.count('') == 2]
>>> result
[[u'Fe', '', ''], [u'Ca', '', '']]
请注意,由于我们没有在此处复制任何内容,因此在所有引用/名称中都会看到对子列表的更改:
>>> result[0][0] = 'Xe'
>>> result
[['Xe', '', ''], [u'Ca', '', '']]
>>> lst
[[u'Kr', u'Se', ''], ['Xe', '', ''], [u'Ca', '', '']]
如果不需要此行为,请在列表理解中创建列表副本(与上一示例的唯一区别是使用x[:]
而不是x
):
嘿,你让它工作了吗?我的回答有用吗?嘿,你让它工作了吗?我的回答有用吗?