Python’da virgülle ayrılmış bir dizgiyi bir listeye bölerken, aralarında boşluk yoksa, sadece split() çalışacaktır. Boşluklar varsa, fazla boşlukları kaldırmak için strip() ile birleştirmek yararlıdır. Ek olarak, liste anlama gösterimini kullanmak, yazmanın akıllı bir yoludur.
Bu bölümde, önce aşağıdakileri açıklıyoruz.
- Belirtilen bir sınırlayıcı ile bir dize bölün ve bir liste olarak döndürün
split()
- Bir dizenin başındaki ve sonundaki fazla karakterleri kaldırın.
strip()
- Öğeleri listelemek için işlevleri ve yöntemleri uygulamak için liste anlama gösterimi.
Ayrıca, aşağıda gösterildiği gibi, boşlukları kaldırarak boşluklar ve virgüllerle ayrılmış dizelerin bir listesinin nasıl oluşturulacağını da gösterir.one, two, three'
Ek olarak, aşağıdakileri tartışacağız
- Numara listesi olarak nasıl alınır
- Bir listeye katılmak ve onu tekrar bir dizge yapmak için join() nasıl kullanılır?
- split():Belirtilen bir sınırlayıcı ile bir dize bölün ve bir liste olarak döndürün
- strip():Bir dizenin başındaki ve sonundaki fazla karakterleri kaldırın.
- Liste anlama gösterimi: liste öğelerine işlevler ve yöntemler uygulayın
- Numara listesi olarak al
- join():Bir listeyi birleştirin ve onu bir dize olarak alın
split():Belirtilen bir sınırlayıcı ile bir dize bölün ve bir liste olarak döndürün
Dizeler için split() yöntemini kullanarak, bir dizeyi belirtilen bir sınırlayıcıyla bölebilir ve onu bir liste (dizi) olarak alabilirsiniz. Belirtilen sınırlayıcı aşağıdaki argümanla belirtilebilir.sep
Sep bağımsız değişkeni atlanırsa ve sınırlayıcı belirtilmezse, dizeyi boşluklara böler ve bir liste döndürür. Ardışık boşluklar ve sekmeler de listeyi böler, bu nedenle sekmeyle ayrılmış dizelerin bir listesini yapmak istiyorsanız, bağımsız değişken olmadan split() öğesini kullanabilirsiniz.
s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one\ttwo\tthree' l = s.split() print(l) # ['one', 'two', 'three']
Sep bağımsız değişkeninde bir sınırlayıcı belirtilirse, listeyi bu dizeye böler ve bir liste döndürür.
s = 'one::two::three' l = s.split('::') print(l) # ['one', 'two', 'three']
Virgülle ayrılmış bir dize durumunda, fazladan boşluk yoksa sorun yoktur, ancak virgül + boşlukla ayrılmış bir dize için sınırlayıcı olarak virgülle split()’i çalıştırırsanız, sona erersiniz. başında beyaz boşluk bırakılmış dizelerin bir listesi ile yukarı.
s = 'one,two,three' l = s.split(',') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Aşağıdaki gibi sınırlayıcı olarak virgül + boşluk kullanabilirsiniz, ancak orijinal dizedeki boşluk sayısı farklıysa çalışmayacaktır., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Daha sonra açıklanacak olan strip() string yöntemi, iki boşlukla başa çıkmak için kullanılabilir.
strip():Bir dizenin başındaki ve sonundaki fazla karakterleri kaldırın.
strip(), bir dizenin başından ve sonundan fazladan karakterleri kaldırma yöntemidir.
Argüman atlanırsa, boşluk karakterleri kaldırılmış yeni bir dize döndürülür. Orijinal dizenin kendisi değiştirilmez.
s = ' one ' print(s.strip()) # one print(s) # one
Argüman olarak bir dize belirtilirse, dizenin içerdiği karakterler kaldırılacaktır.
s = '-+-one-+-' print(s.strip('-+')) # one
Bu durumda, boşluklar kaldırılmaz. Bu nedenle, boşlukları da kaldırmak istiyorsanız, aşağıda gösterildiği gibi argüman olarak boşluk içeren bir dize iletin.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
strip() her iki ucu da işler, ancak aşağıdaki işlevler de mevcuttur.
lstrip()
:İşlem sadece başlangıçrstrip()
:Yalnızca satırın sonunu işleyin.
Liste anlama gösterimi: liste öğelerine işlevler ve yöntemler uygulayın
Bir listenin öğelerine bir işlev veya yöntem uygulamak istiyorsanız, listeyi sonunda almak istiyorsanız for döngüsü yerine liste anlama gösterimini kullanmak akıllıca olur.
- İlgili Makaleler:Python liste anlama gösterimini kullanma
Burada, string’i split() ile bölerek elde edilen listeye strip() uyguluyoruz. Boşluk içeren virgülle ayrılmış bir dizedeki fazladan boşluk, bir liste yapmak için kaldırılabilir.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Bu, boş bir dizeye uygulandığında, eleman olarak tek bir boş dize içeren bir liste elde edilebilir.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Boş bir dize için boş bir liste almak istiyorsanız, liste anlama notasyonunda koşullu bir dal ayarlayabilirsiniz.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
Ayrıca, yukarıda açıklandığı gibi virgülle ayrılmış bir öğe eksikse, ilk yöntem onu boş bir dize öğesi olarak listeleyecektir.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Eksik kısımları yoksaymak istiyorsanız, liste anlama notasyonunda koşullu bir dal oluşturabilirsiniz.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Numara listesi olarak al
Bir dize yerine sayı listesi olarak virgülle ayrılmış bir sayı dizesi almak istiyorsanız, dizeyi liste anlama gösteriminde bir sayıya dönüştürmek için int() veya float() uygulayın.
s = '1, 2, 3, 4' l = [x.strip() for x in s.split(',')] print(l) print(type(l[0])) # ['1', '2', '3', '4'] # <class 'str'> s = '1, 2, 3, 4' l = [int(x.strip()) for x in s.split(',')] print(l) print(type(l[0])) # [1, 2, 3, 4] # <class 'int'>
join():Bir listeyi birleştirin ve onu bir dize olarak alın
Ters modelde, bir listeye katılmak ve belirli bir sınırlayıcıyla ayrılmış dizeler almak istiyorsanız, join() yöntemini kullanın.
Hata yapmak kolaydır, ancak join() öğesinin bir liste yöntemi değil, bir dize yöntemi olduğunu unutmayın. Liste bir argüman olarak belirtilir.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three'] print(','.join(l)) # one,two,three print('::'.join(l)) # one::two::three
Aşağıdaki gibi tek satırda yazabilirsiniz.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Yalnızca sabit bir sınırlayıcıyı değiştirmek istiyorsanız, bunu replace() yöntemiyle değiştirmek daha kolaydır.
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three