从列表中删除多个空格

时间:2018-06-20 07:17:22

标签: python python-2.7

提供名单:

class ClientDetails extends Model
{

    public function client_logins()
    {
        return $this->hasMany('App\ClientLogins', 'user_id', 'user_id');
    }
}

$clients = ClientDetails::whereHas('client_logins', function ($query) use ($active)  {
    $query->where('is_active', '=', $active);
})->get();
  
      
  1. 第一个元素在>>> l1 = ['1, A Ab','2,B Bc ','3, C Cd '] 之前有2个空格。
  2.   
  3. 第二个元素在A Ab之后有1个空格。
  4.   
  5. 第三元素是B Bc的每一侧有1个空格。
  6.   

要删除n个空格,发生在元素值之前/之后。

预期结果:

C Cd

我的尝试:

['1,A Ab','2,B Bc','3,C Cd']

仍然在第二和第三元素中留有空格。

4 个答案:

答案 0 :(得分:3)

使用列表理解。

例如:

l1 = ['1,  A Ab','2,B Bc ','3, C Cd ']
print( [",".join(map(str.strip, i.split(","))) for i in l1] )

输出:

['1,A Ab', '2,B Bc', '3,C Cd']

答案 1 :(得分:0)

尝试一下。它使用列表理解

>>> l1 = ['1,  A Ab','2,B Bc ','3, C Cd ']
>>>
>>> l1 = [",".join([s.strip() for s in item.split(",")]) for item in l1]
>>>
>>> l1
['1,A Ab', '2,B Bc', '3,C Cd']
>>>

答案 2 :(得分:0)

另一种实现此目的的方法,

import re
l1 = ['1,  A Ab','2,B Bc ','3, C Cd ']
new_list = [re.sub(', +',',', i).strip() for i in l1]

输出

['1,A Ab', '2,B Bc', '3,C Cd']

答案 3 :(得分:0)

尝试一下:

import re
l1 = ['1,  A Ab','2,B Bc ','3, C Cd ']
l2 = [re.sub(r"\s{2,}|(?<=,)\s|\s$","",s) for s in l1]
l2