Python'da Liste Elemanlarını Yazdırmanın Yanlış Yolu

Pardus'un bana göre en güzel yönlerinden biri olan, paket yapımını ve yönetimini kolaylaştıran PiSi'de eksikliğini hissettiğim paketlerin lisans bilgilerinin gösterilmesi konusunda geçenlerde bir kayıt açmaya karar vermiştim. Fazla zor olmayacağını düşündüğümden ve yapabilirsem bir yama sunmak istediğimden /usr/lib/pardus/pisi dizininde bulunan PiSi'nin kodlarına bakmaya başladım.

İlgili olabileceğini düşündüğüm kaynak kodları karıştırdıktan kısa bir süre sonra specfile.py üzerinde denemelere başladım. Özet, tanım, bileşen için kullanılan fonksiyonu kullanmak yeterli olmalıydı o anki tahminlerime göre. Bir bakıma yeterli oldu da ama gösterilen sonuçta yazdırılacak bilgiyle ilgisi olmayan [, ], ' gibi karakterler de bulunuyordu. Aslında bu karakterlerden üzerinde işlem yaptığımın bir katar değil de liste olduğunu anlamam gerekirdi. Bununla birlikte listenin normal şekilde yazdırılmaya çalışıldığında liste öğelerini ayıran sınırlarla birlikte yazılacağını düşünmediğimden üzerinde işlem yaptığımın bir katar olduğundan emindim o an. O yüzden replace ile istemediğim karakterlerden tek tek kurtulmakta hiçbir çekince hissetmedim.

Python'da liste elemanlarını yazdırmanın yanlış yolu:
>>> liste = ['bir', 'iki', 'uc', 'dort']
>>> print "%s" % liste
['bir', 'iki', 'uc', 'dort']
>>>
Python'da liste elemanlarını yazdırmanın yanlış yolunu düzeltme çabası:
>>> liste = ['bir', 'iki', 'uc', 'dort']
>>> print "%s" % unicode(liste).replace('[','').replace(']','').replace('\'','')
bir, iki, uc, dort
>>> 

Python'da liste elemanlarını yazdırmanın doğru yolu:
>>> liste = ['bir', 'iki', 'uc', 'dort']
>>> print u", ".join(liste)
bir, iki, uc, dort
>>> 

Bu da böyle bir anımdır.


PiSi CLI: Show License Information
split and join

Yorumlar

Bu blogdaki popüler yayınlar

Mızıka Tabları Nasıl Okunur

conio.h

Muhtar Kellesi