• 0

كيف أنشئ مجال للأحرف الأبجدية في بايثون؟

أريد إنشاء سلسلة بها جميع الأحرف الأبجدية كالتالي:

alpha = ['a', 'b', 'c', 'd'.........'z']

فما هي أقصر الطرق لفعل ذلك في بايثون من دون الاضطرار لكتابة جميع الحروف؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

للحصول على جميع الأحرف (الحروف الإنجليزية الصغيرة) في بايثون، يمكنك استخدام وحدة string التي تحتوي على عدة متغيرات تهتم بالسلاسل النصية والتي من بينها ascii_lowercase كما يظهر لنا في المثال التالي:

>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

والآن سنحوّل السلسلة النصية السابقة إلى قائمة كما أردت أنت:

>>> list(string.ascii_lowercase)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

كما يمكنك فعل نفس الشيء عن طريق استخدام مجال أحرف آسكي من 97 إلى 123 ومن ثم تحويلهم إلى أحرف كما في المثال التالي:

>>> list(map(chr, range(97, 123))) #or list(map(chr, range(ord('a'), ord('z')+1)))
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

بعض متغيرات وحدة string والتي يمكنك استخدامها في برامجك:

>>> help(string) # on Python 3
....
DATA
    ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
    ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    digits = '0123456789'
    hexdigits = '0123456789abcdefABCDEF'
    octdigits = '01234567'
    printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
    punctuation = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
    whitespace = ' \t\n\r\x0b\x0c'

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن