Çözüldü Python Tab ile ayrılmış metin nasıl liste haline getirilir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
9 Haziran 2019
Mesajlar
3.082
Makaleler
3
Çözümler
25
Elimde 3 satırlık metinler var. Bunu direkt scripte yapıştırdığımda bana her satır listenin bir elemanı olacak şekilde ayırması lazım. Bunu nasıl yapabilirim?

Örnek girdi:
Hoaxer

12345

ABC

İstenen çıktı:
Python:
list = ["Hoaxer", "12345", "ABC"]

(Ayrı ayrı stringler haline getirmek de işimi görür, eğer bunu biliyorsanız onu da yazabilirsiniz. Asıl önemli olan bir satır boşluk olan metni satırlarına ayırabilmek.)
 
Çözüm

Yukarıda verilen kodu değiştirdim:
Python:
print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")
contents = []
while True:
    try:
        line = input()
    except EOFError:
        break
    if line != "":
        contents.append(line)
print(f"list = {contents}")

Metni yapıştır, ardından önce Enter sonra Ctrl-D/Ctrl-Z yap.

Çıktı:

1720164032247.png
satir = [satir for satir in metin.split("\n") if satir.strip()]
metin str ifadenizin değişken adı.
Hocam benim kodumda mı sıkıntı var çünkü sadece ['Hoaxer'] çıktısını veriyor.


Python:
metin = input(">>")
satir = [satir for satir in metin.split("\n") if satir.strip()]
print(satir)
Append fonksiyonu mu kullanmalıyım?
 
sys.stdin.read() ile yeni boşlukları da okuyabilirsiniz. Windows kullanıyorsanız metni girdikten sonra Enter'a basıp sonrasında Ctrl+Z ve Enter'a basarsanız metni okuyabilirsiniz.

Python:
import sys

words = sys.stdin.read().split()
print(words)
 
Hocam benim kodumda mı sıkıntı var çünkü sadece ['Hoaxer'] çıktısını veriyor.


Python:
metin = input(">>")
satir = [satir for satir in metin.split("\n") if satir.strip()]
print(satir)
Append fonksiyonu mu kullanmalıyım?
1719946280527.png

Çalıştırdığımda bir problem gözükmüyor.
 
Eğer metin koda verilmiş şekilde olursa dediğiniz gibi çalışıyor bende de sorun yok. Fakat input kullanmak istediğimde hata veriyor. Ve input şeklinde almam gerekli.
metin=input("değer girin: ")
satir = [satir for satir in metin.split() if satir.strip()]
print(satir)
Boşluklu girilen değeri ayıracak.
 

Yukarıda verilen kodu değiştirdim:
Python:
print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")
contents = []
while True:
    try:
        line = input()
    except EOFError:
        break
    if line != "":
        contents.append(line)
print(f"list = {contents}")

Metni yapıştır, ardından önce Enter sonra Ctrl-D/Ctrl-Z yap.

Çıktı:

1720164032247.png
 
Çözüm
Eki Görüntüle 2241720
Hocam siz kodu denediniz mi yoksa denemeden mi yazıyorsunuz? Ya da girdi olarak direkt benim kullandığım girdiyi kopyalayıp yapıştırıyor musunuz?
Çıktı almadan kodu buraya atacak değilim. Konunun neden karşılıklı farklı olduğu hakkında konuyu incelemedim. Fakat konu başlığına baktığımda bir boşluk ile ayıracak şekilde düşünerek düzeltme yapmıştım. Tab tuşunun 4 veya 8 boşluk yarattığını dikkate almadım. Açıkçası başka proje üstünde çalışırken sizi görünce hızlıca yazdım. Split içerisine "\t" şeklinde belirtirseniz konu çözüme kavuşacaktır. Kolaylıklar dilerim.

metin = input("Değer girin: ")
satir = [satir for satir in metin.split("\t") if satir.strip()]
print(satir)
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı