Python'da alfabe harflerini sayıya dönüştürme
Aşağıdakiler nasıl tamamlanabilir?
characters = ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''t''u''v''w''x''y''z']
numbers = ['1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24']
text = raw_input(' Write text: ')
Bunu birçok şekilde çözmeye çalıştım ama bir türlü sonuca ulaşamadım. Exc yapmak istiyorum. Eğer "hello" yazarsam çıktı alfabedeki gibi sıralanmış sayılar halinde olsun. Örnek a = 1 < alfabede.
50
3
Şöyle bir şeye ne dersin?
ord list comprehension ASCII karakter kodları
EDIT Benden açıklamamı istediğiniz için açıklayacağım... gerçi yorumlarda [?] tarafından zaten oldukça iyi açıklanmıştı.
Başlangıç için bunu birden fazla satırda yapalım.
Bu da aynı şeyi yapıyor ama daha okunabilir. İlk cevabımı anlamaya çalışmadan önce burada neler olup bittiğini anlayabildiğinizden emin olun. Buradaki her şey oldukça standart, basit Python. Dikkat edilmesi gereken tek şey
ord
fonksiyonudur. ord, ordinal anlamına gelir ve hemen hemen her yüksek seviyeli dilde bu tür bir fonksiyon bulunur. Size herhangi bir karakterin sayısal gösterimine bir eşleme verir. ord'un ters fonksiyonuna chr denir.Kendiniz test ederseniz, a harfinin sıra numarası 97'dir (yukarıda yayınladığım üçüncü bağlantı tüm ASCII karakter setini gösterecektir.) Her küçük harf 97-122 aralığındadır (26 karakter.) Dolayısıyla, herhangi bir küçük harfin sıra numarasından 96'yı çıkarırsanız, 'a' == 1 aldığınızı varsayarak alfabedeki konumunu elde edersiniz. Yani, 'b' == 98, 'c' == 99, vb. 96'yı çıkardığınızda, 'b' == 2, 'c' == 3, vb.
Gönderdiğim ilk çözümün geri kalanı, liste anlama adı verilen öğrenebileceğiniz bazı Python hileleridir. Ancak, ben olsam buna odaklanmaz, ord'un arkadaşınız olduğu herhangi bir dilde problemi çözmeyi öğrenmeye odaklanırdım. Umarım bu yardımcı olur.
Bu, bu amaç için kullandığım bir işlevdir. Hem büyük hem de küçük harfler için çalışır.