关于python,我仍然是菜鸟。我有包含字符串的此列表。我的问题是从列表中删除''
(空字符串)。
我尝试在python中使用.remove()
,但仍然无法正常工作。
例如,我有一个包含下一个数据的列表:
a = ['', 'word', 'three', '', 'five']
我只希望输出为:
a = ['word', 'three', 'five']
答案 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]
(这将过滤出None
,0
和False
s)
好方法:
[elem for elem in a if elem != '']
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