2016-04-11 7 views
-2
myList = ['Jay', 'Phil', 'Gloria, Claire'] 

Listedeki tüm öğeleri kontrol etmek ve virgülle ayırmak, iki yeni öğenin aynı listede kalmasını sağlamak istiyorum. Çıktı olmalıdır:python ile virgülle iç öğe içinde ayırma öğesi

myList = ['Jay', 'Phil', 'Gloria', 'Claire'] 

Bu denedim:

newList = [] 
myList = ['Jay', 'Phil', 'Gloria, Claire'] 

for element in myList: 
    newList.append(element.split(',')) 

ama çıktı olarak alt listelerin bir sürü var ve bu ne istiyorum değildir:

['Jay'], ['Phil'], ['Gloria', 'Claire'] 

nasıl Bunu çözebilir miyim?

+1

Dizinizde olmayan bir sınırlayıcıyla nasıl bölmek istiyorsunuz? – styvane

cevap

1

append yerine extend kullanmayı deneyin.

for element in myList: 
    newList.extend(element.split(',')) 
+0

'' Şey, '' ile bu alana istenmeyen bir yer bırakacaksınız .split (',') ' – idjaw

+0

@idjaw Cevabımda buna dikkat ettim – Adib

0

Sen liste anlama kullanmayı tavsiye edebilirsiniz:

newList = [element for item in myList for element in item.split(',')] 
0

You have bir büyük hata

İlk: bir listeye bir liste ekleme düzgün kullanarak (farklı bir yaklaşım gerektirir + = vs vs)

O zaman 'Claire'i almak için' şeridi 'kaldırmak için' şeridi 'kullanmanız gerekir (' Claire 'değil)

newList = [] 
myList = ['Jay', 'Phil', 'Gloria, Claire'] 

for element in myList: 
    newList += element.split(',') 

newList = [x.strip() for x in newList] 

print newList 

# ['Jay', 'Phil', 'Gloria', 'Claire'] 
0

Çözümünüz farklı sorunlara iyi gelir. eğer

:

myList = "Jay,Phil,Gloria,Claire" 

mantıklı var kelimelerin Listeye dize dökülen etmek.

Halihazırda zaten bir kelime listesi var, böylelikle bölünmüş değilsiniz.

İlgili konular