Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 变量内部列表的列表理解示例_Python_List_Compression - Fatal编程技术网

Python 变量内部列表的列表理解示例

Python 变量内部列表的列表理解示例,python,list,compression,Python,List,Compression,我正在用python进行列表理解 l = [['200801', '100'], ['', ''], ['200802', '151'], [''], ['200805', '160'] ,['', u''], [''], [u'\xa0'], ['\r\n \r\n ', '\r\n '], ['200812', '50']] 我希望输出为 [['200801'

我正在用python进行列表理解

l = [['200801', '100'], ['', ''], ['200802', '151'], [''], ['200805', '160'] ,['', u''], [''], [u'\xa0'], ['\r\n                       \r\n                        ', '\r\n                      '], ['200812', '50']]
我希望输出为

[['200801', '100'], ['200802', '151'], ['200805', '160'], ['200812', '50']]
如何删除这种不确定的可变长度和额外字符的内部列表?

这里有一种方法:

>>> [x for x in l if all(y.strip() for y in x)]
[['200801', '100'], ['200802', '151'], ['200805', '160'], ['200812', '50']]
不过我不太喜欢它,它在一行中做的太多了


如果你能更好地描述你想要表达的内容,你会发现用Python(或任何其他语言)来描述要容易得多。

你可以使用正则表达式来搜索看起来像数字的模式

>>x=['200801','100'],['',['',['200802','151'],['','200805','160'],['',u'\xa0'],['\r\n\r\n'],['200812','50']
>>>进口稀土
>>>[p代表x中的p,如果所有(重新匹配(r'\d+',q)代表p中的q)]
[['200801', '100'], ['200802', '151'], ['200805', '160'], ['200812', '50']]

加入
可以在这里派上用场

# keep only non-empty lists
print [x for x in l if ''.join(x).strip()]

# keep only lists with digits
print [x for x in l if ''.join(x).isdigit()]

也可以是
y.isdigit()
,具体取决于OP@gnibbler:可能是。该规范非常缺乏。您需要定义“删除什么?”和“保留什么?”。否则,我们都在浪费时间猜测你在想什么。同样,当你说“我正在研究列表理解”时,你应该通过展示你的列表理解来帮助我们。。。这个问题没有答案。