Python'da bir listeyi boşluk içeren bir dizeye nasıl dönüştürebilirim?


93

Python'da bir listeyi boşlukla ayrılmış bir dizeye nasıl dönüştürebilirim?

Örneğin, bu listeyi dönüştürmek istiyorum:

my_list = [how,are,you]

Dizenin içine "how are you"

Boşluklar önemlidir. howareyouŞimdiye kadarki denememle sahip olduğum gibi almak istemiyorum

"".join(my_list)

18
İpucu: listDeğişken adı olarak kullanmayın .
Tim Pietzcker

Yanıtlar:


196
" ".join(my_list)

boş bir dizeyle değil bir boşlukla katılmanız gerekir ...


7
Python'u bu yüzden kodlayın. Çok basit.
Josh

peki eğer bu formatta dizgimiz varsa, bunu list = ['how ', 'are ', 'you '] listeye nasıl dönüştüreceğiz.
Muhammad Taqi

1
@MuhammadTaqi sonra be4'e katılacak olan elementi " ".join([i.strip() for i in my_list)
soyun

17

" ".join(my_list)Dizelerle karşılaştırıldığında hemen hemen yararsız olsa da, bunu bir alternatif olarak atacağım . Dizge olmayanlar için (örneğin bir tamsayı dizisi) bu daha iyi olabilir:

" ".join(str(item) for item in my_list)

7

Non String için listbunu da yapabiliriz

" ".join(map(str, my_list))

2

Yani istenen çıktıyı elde etmek için önce fonksiyonun nasıl çalıştığını bilmeliyiz.

join()Python belgelerinde açıklanan yöntem için sözdizimi aşağıdaki gibidir:

string_name.join(iterable)

Dikkat edilmesi gerekenler:

  • stringÖğeleriyle birleştirilmiş bir döndürür iterable. Öğeler arasındaki ayırıcı string_name.
  • İçindeki herhangi bir dize olmayan değer, iterablebirTypeError

Şimdi, beyaz boşluklar eklemek için , sadece string_namebir " "veya her ' 'ikisi ile değiştirmemiz gerekiyor, ikisi de çalışacak ve iterablebirleştirmek istediğimiz yeri yerleştirecek .

Yani, işlevimiz şuna benzer:

' '.join(my_list)

Peki ya white spacesöğelerin arasına belirli bir sayı eklemek istersek iterable?

Bunu eklememiz gerekiyor:

str(number*" ").join(iterable)

burada numberbir kullanıcı girişi olacaktır.

Yani, örneğin eğer number=4.

O zaman will'in çıktısı str(4*" ").join(my_list)olacaktır how are you, bu yüzden her kelimenin arasında 4 beyaz boşluk vardır.



-9

Neden listenin öğelerine bir boşluk eklemiyorsunuz, örneğin:
list = ["how ", "are ", "you "]


Bu yanıtı , yorum şeklinde daha uygun görünecek şekilde yazdınız . Önerdiğiniz şeyin neden işe yaradığını açıklamak için bu yanıtı genişletirseniz daha faydalı olacaktır .
Andon M. Coleman

1
Bu, listeye erişiminizin olmadığı bir durumda işlevsel değildir (örn. input(a).split(b)
İle

iç dizeleri değiştirmemeliyiz çünkü bize yer kaybına neden oluyor
Deepak Yadav
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.