2017-02-14 11 views
-2
に巨大な単一の文字列のリストを分割する方法

だから私は持っているような3つの巨大な文字列のリスト:別々の部分文字列

lst=['Mary,had,"3",little-lambs','Mary,sold-her,"3",lambs,away','Mary,was,sad'] 

そのリストには、巨大な文字列を持っているが、私はにこれらの文字列を分割したいです最初の1のために私がしたいので、リスト内の別々の小さな文字列(:

ls=['Mary','had','3','little','lambs'] 

というように、私は

.split 

しかし、私を試してみました。そのリストとそれが文字列メソッドであるために動作しません。私は完全に非 - pythonic方法が必要です。 (また、誰が次のステップは、私はメアリーにキーとして辞書に悲しい、離れて、この場合の子羊には(最後の値を入れてトリングだと助けることができるかどうか 例のように:。

dictionary={"lambs": "Mary","away":"Mary","sad":"Mary"} 

理由私はメアリー(値)に示す必要があり、メアリーに関連するすべてのキーがポップアップする必要があります。誰かがそれを高く評価する助けがあれば、私は本当に立ち往生しています。

編集:私は、forループを使用し、各事を分割し、新しいリストに追加されますが、それは結果は文字列のリストのリストを作成している

lst1=[] 
for item in lst: 
    item=item.split(",") 
    lst1.append(item) 
print(content) 
print(lst1) 

lst1=[['Mary','had','3','little','lambs']] 

私は私が以前

+0

リスト全体を反復処理し、各文字列に.splitを適用できます。 – synchronizer

+1

なぜ完全に非パイソン的な方法が必要ですか? –

+0

今は単純なコーディングをしているだけなので、非パイソン系でなければなりません。 – Jasper

答えて

-1

EDITを述べた辞書を作成する方法をインデックスにそれの各部分を知らないので、別のリスト内のリストを作成しないようにしようとしている:含むre.splitように分割を変更"、"と " - "文字の正規表現。必要な区切り文字に一致するように変更する必要があります。 これはあなたに必要な辞書を提供します。別のリストにtokensを追加すると、文字列ごとの個々の単語のリストを取得できます。

import re 
last_keys = dict() 
for item in lst: 
    tokens = re.split(r',|\-', item) 
    last_keys[tokens[-1]] = "Mary" 
+0

これは「子羊」を分けません。 – vendaTrout

+0

@vendaTroutあなたは正しいですか?代わりにre.split()を追加しました。ありがとうございました! – Neelik

+0

私たちは、まだ、何か他のことについて学んだことはありませんか? – Jasper

-1

上記答えでre.split()を使用してください。

import re 
last_keys = dict() 
for item in lst: 
    tokens = re.split('-|,',item) 
    last_keys[tokens[-1]] = "Mary" 

last_keys 
{'lambs': 'Mary', 'away': 'Mary', 'sad': 'Mary'} 
関連する問題