SORU
1 Mayıs 2011, Pazar


Bir liste birleştirme elemanları - Python

Python (birkaç hafta) için oldukça yeniyim ve bir sorun listesi katılmadan içine çalıştırın. Şimdi, liste uzun bir dize olarak yapmak için katılmış olabilir biliyorum

    x = ['a', 'b', 'c', 'd']
    print ''.join(x)

Açıkçası bu çıktı:

    'abcd'

Yapmak istediğim şey, ancak, sadece listede yumruk ve ikinci dizeleri katılmak, üçüncü ve dördüncü ve benzeri katılın. Kısacası, yukarıdaki örnekte yerine bir çıkış elde etmek için:

    ['ab', 'cd']

Herhangi bir basit bir yolu bunu yapmak için vardır? Muhtemelen de dizeleri sayısı her zaman bile olacak olsa listedeki dize uzunlukları olacak listesindeki sayı olarak tahmin edilemez olacak söz etmeliyim. Orijinal listeyi de olabilir:

    ['abcd', 'e', 'fg', 'hijklmn', 'opq', 'r'] 

ya da her neyse. Neyse, herhangi bir yardım büyük şimdiden teşekkürler çok makbule geçer. :)

CEVAP
1 Mayıs 2011, Pazar


Adımlara dilim gösterimi kullanabilirsiniz:

>>> x = "abcdefghijklm"
>>> x[0::2] #0. 2. 4...
'acegikm'
>>> x[1::2] #1. 3. 5 ..
'bdfhjl'
>>> [i j for i,j in zip(x[::2], x[1::2])] # zip makes (0,1),(2,3) ...
['ab', 'cd', 'ef', 'gh', 'ij', 'kl']

Aynı mantık listeler için de geçerlidir. Dize uzunluğu sadece birlikte iki dize ekleyerek olduğun için önemli değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GirlSanctuaryBlog

    GirlSanctuar

    28 Aralık 2011
  • jcortes187

    jcortes187

    24 Mart 2006
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011