私はbeautifulsoup操作の後に生成されるリストを持っています。それは内部リストとして分割したい括弧内の数字で区切られた文字列を持っています。たとえば、私は、これは私がこの括弧で数字で終わる文字列を区切るPython正規表現
[re.split(r'\(\d\)',item) for item in L1]
で開始
[[‘alpha’, ‘beta’],[‘gamma’, ‘delta’]]
に変換する必要がありますが、これが最後の項目で追加のスペースを作成し、1つの以上の空白項目を生成
L1=['alpha(1) beta(4)','delta(5) gamma(6)']
を持っています最後に。
[['alpha', ' beta', ''], ['delta', ' gamma', '']]
だから私はこの
L1=[re.split(r'\(\d\)',item) for item in L1]
[[x.strip() for x in y if x] for y in L1]
のようなコードに1行を追加し、これはだから私のクエリが
- なぜそれをしている私が
[['alpha', 'beta'], ['delta', 'gamma']]
欲しいものを提供しますコマンドの最初の行だけを使って何をしますか?なぜ最後の要素が作られたのか?
- これを単一かつ簡単な正規表現で実現する良い方法はありますか?
print([[j.split("(")[0] for j in i.split()] for i in L1])
戻り値:
はちょうどこれを提案しようとしていました - 'findall'はあなたが後にしているものを実装するより読みやすい方法だと思います。 – asongtoruin
あなたの説明は非常に役に立ちます。ありがとう! – PagMax