方法1(a ) ((n )、(1)、()、)、(Tuesday,may 05,2020 )、(n )、()、()、()、(n、)、(n )、) ) ) ) ) ) )此列表位于中间
list=[x.strip () for x in a]
执行时,将获得以下结果
[“,”、“1”、“,”、“Tuesday,may 05,2020”、“”通过for循环将所有不需要的内容转换为空。
我们有必要通过判断消除其中不需要的天空
list=[ x.strip (] forxinaifx.strip )!=' ' ] [‘1’,‘Tuesday,may 05,2020’]
总结:
该方法是去除strip ()、所有空白字符,使之为“”,然后通过判断进行过滤。 如果是单个字符,也可以用replace('n ',' )进行替换。 这种情况不适合不确定的列表。 在这种情况下,您需要确保您都是“n”的。
方法用filter函数判断空字符串,空字符串判定为False
filter(None,your_list ),none表示不输入函数,[x for x in your_list if x],还可以是包含参数的函数。
b=['n ','1',',',',' Tuesday,may 05,2020 ','n ',none]defnot_empty(s ) : return s and s.strip
[‘1’,‘Tuesday,may 05,2020’]
注意:过滤器会生成迭代器。 filterobjectat0x 00000208 DAC 98400
必须使用list(c )才能获取结果
方法在while循环中删除空字符串。
while ' ' in your _ list : your _ list.remove (' )可以总结这三种方法,但建议使用方法2。 因为他的执行速度最快。
测试方法:
d=timeit.timeit('filter(none,your_list ),' your_list=10*['a ',' b ',',',',',',',' c,',' b,' b,' b,' b,' b,=''] '、' your_list=10*['a '、' b '、'、'、'、'、'、'、'、'、' c '、'、'、'、'、'、'、d、e、'、f、g、nud
方法2:0.0001000000000004
方法1:0.01110370000000005
方法3:0.000635000000000036
知识点: Python有三个去除头尾字符、空格字符的函数。 这些按顺序是:
strip :用于删除包括n、r、t和“”的头尾字符和空格,例如“换行符”、“换行符”、“制表符”和“空格”
lstrip :用于排除首字符、空格、n、r、t、“换行符、换行符、制表符和空格
(rstrip )用于删除尾部字符、空白字符(包括换行符、制表符和空格) n、) r、) t和)
注意:所有这些函数只删除开头和结尾的字符,不删除中间的字符。
使用方法如下
string.strip([chars] )。
string.lstrip([chars] )。
string.RStrip([chars] )。
chars参数是可选的,如果chars为空,则缺省情况下删除字符串末尾的空格n、r、t和’
如果chars不为空,则chars会将函数分解为一个个字符并将其删除。
返回删除了头尾字符(或空白字符)的string的副本,并且string本身保持不变。
例如:
如果chars为空,则默认删除空白字符。 删除“ n”、“ r”、“ t”、“”、“str='abCD'print(str.strip )”头尾空格print(str.lstrip ) )
‘ABCD’
‘ABCD’
’ABCD’
2 .如果chars不为空,则chars会将函数分解为一个个字符并将其删除
str2=' 1a2b 12 c 21 ' print (str2. strip ) )删除头尾的1和2print ) )删除开头的1和2print ) str2.RStrint
‘a2b 12 c’
‘a2b 12 c 21’