如何在python列表中删除''?

时间:2019-05-28 15:32:19

标签: python list

关于python,我仍然是菜鸟。我有包含字符串的此列表。我的问题是从列表中删除''(空字符串)。

我尝试在python中使用.remove(),但仍然无法正常工作。

例如,我有一个包含下一个数据的列表:

a = ['', 'word', 'three', '', 'five']

我只希望输出为:

a = ['word', 'three', 'five']

4 个答案:

答案 0 :(得分:1)

您可以应用list comprehension来重写缺少零长度字符串的原始列表。

代码:

a = ['', 'word', 'three', '', 'five']
a = [item for item in a if item]

输出:

['word', 'three', 'five']

答案 1 :(得分:0)

使用list generators的最短方法:

[elem for elem in a if elem](这将过滤出None0False s)


好方法:

[elem for elem in a if elem != '']


filter内置函数与lambdas结合使用:

list(filter(lambda e: e != '', a))


通用方法-构造要删除的索引列表,然后将其从原始列表中删除:

indices_to_remove = []
for i, elem in enumerate(a):
    if elem == '':  # Allows to use a complicated logic
        indices_to_remove.append(i)
for i in sorted(indices_to_remove, reverse=True):
    del a[i]

答案 2 :(得分:0)

您可以按照以下步骤进行操作。 filter函数默认会执行此操作。

a = ['', 'word', 'three', '', 'five']

print(list(filter(None, a)))

输出:

['word', 'three', 'five']

答案 3 :(得分:0)

您可以比较字符串的<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Imports\NoteImport; use Maatwebsite\Excel\Facades\Excel; class NoteController extends Controller { public function addnote(){ return view('note.create'); } public function savenote(Request $request){ Excel::import(new NoteImport, request()->file('file')); return redirect()->back()->with('success', 'All good!'); } } 并将其追加到长度大于1的列表中

您可以通过以下方式实现:

<?php

namespace App\Imports;

use App\Note;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use DateTime;

use Auth;
class NoteImport implements ToModel, WithHeadingRow
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        $now = new DateTime();
        return new Note([

            'num'=>$row['num'],
            'cne'=> $row['cne'],
            'nom'=> $row['nom'],
            'prenom'=> $row['prenom'],
            'note'=> $row['note'],
            'matiere'=> $row['matiere'],
            'user_id' => Auth::user()->id,
            'remarque' => $row['remarque'],
            'sem' => $row['sem'],
            'ses' => $row['ses'],
            'an' => $row['an'],
            'created_at'=>$now,
            'updated_at'=>$now,

        ]);
    }
}

您也可以通过list comprehensions

length