क्या कोई पायथन लाइब्रेरी है जिसमें सभी अस्सी पात्रों की सूची है?


98

नीचे कुछ इस तरह है:

import ascii

print ascii.charlist()

जो कुछ इस तरह लौटेगा [ए, बी, सी, डी ...]

जवाबों:


162

stringस्थिरांक तुम क्या चाहते हो सकता है। ( डॉक्स )

>>> आयात स्ट्रिंग
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

यदि आप सभी मुद्रण योग्य वर्ण चाहते हैं:

>>> string.printable
'0123456789abdedeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ! "# $% & \ _ () * +, -।:! @! @ [\\] ^ _ {}} \ _ \ _ \ _ \ _ \ _ \ _ \ _

3
मुझे लगता है कि यह थोड़ा भ्रमित है, ASCII से नहीं है, aकरने के लिए z, लेकिन 0 127 के लिए कोड से, कि केवल अक्षर नहीं है।
एंड्री

4
string.ascii_lettersपूरा शेबंग है!
देशभक्ति

1
@jathanism - या बस string.letters... string.printableकरीब है (लेकिन ऐसा नहीं है) जो @Andrey का जिक्र कर रहा था, हालाँकि।
जो किंगटन

मुझे लगता है कि यह इस बात पर निर्भर करता है कि ओपी को वास्तव में हर एक चरित्र की आवश्यकता है या नहीं। string.printableसभी मुद्रण योग्य वर्ण देता है।
एकॉर्न

प्रश्न का शीर्षक स्पष्ट है (और यह पूरे ASCII सेट को संदर्भित करता है) लेकिन उदाहरण में ऐसा लगता है कि ओपी वास्तव में पत्र चाहता है।
एंड्री

32

यह रहा:

[chr(i) for i in xrange(127)]

यह देखते हुए कि Stringमॉड्यूल को हटा दिया गया है, यह सबसे अच्छा उत्तर है
डेवोन एम

@ChuckFulminata, stringमॉड्यूल को पदावनत नहीं किया जाता है। उदाहरण के लिए इसे देखें ।
dkasak

@dkasak कूल धन्यवाद, मैं भूल गया, stringमॉड्यूल केवल आंशिक रूप से पदावनत है
Devon M

1
यह भी याद रखें कि पायथन 3 में आपको कॉल करना चाहिए range(127), क्योंकि rangeहटा दिया गया था और xrangeफिर से नाम दिया गया था । इसके अलावा, पायथन 2 में यूनिकोड के पात्रों को प्राप्त करने के लिए आपको कॉल करना चाहिए unichr(i)लेकिन पायथन 3 में बसchr(i)
बेंज

1
यह 0-127 के लिए सीमा (128) नहीं होना चाहिए?
एनाक्टेकॉट

14

ASCII 128 वर्णों को परिभाषित करता है जिनकी बाइट का मान 0 से 127 तक होता है। तो सभी ASCII वर्णों की एक स्ट्रिंग प्राप्त करने के लिए, आप बस कर सकते हैं

''.join([chr(i) for i in range(128)])

केवल उनमें से कुछ प्रिंट करने योग्य हैं, हालांकि, प्रिंट करने योग्य ASCII वर्णों को पायथन के माध्यम से एक्सेस किया जा सकता है

import string
string.printable

4

चूंकि ASCII प्रिंट करने योग्य वर्ण एक बहुत छोटी सूची है (32 और 127 के बीच के मूल्यों के साथ बाइट्स), यह आसान है जब आप इसे उत्पन्न करते हैं:

>>> for c in (chr(i) for i in range(32,127)):
...     print c
... 

!
"
#
$
%
... # a few lines removed :)
y
z
{
|
}
~

3
for i in range(0,128):
    print chr(i)

इसे इस्तेमाल करे!


ASCII होगा range(0, 128)
dan04

@ dan04 @lucemia ASCII 0 से 127 तक , विस्तारित कोड 255 तक हैं
एंड्री

3
@Andrey: ASCII 0 से 127 तक है, इसलिए पायथन में रेंज (0, 128)। (कई अन्य उत्तरों में एक सामान्य त्रुटि ...)
jtniehof

1

आप एक मॉड्यूल के बिना यह कर सकते हैं:

    characters = list(map(chr, range(97,123)))

टाइप करें charactersऔर इसे प्रिंट करना चाहिए ["a","b","c", ... ,"x","y","z"]। अपरकेस उपयोग के लिए:

    characters=list(map(chr,range(65,91)))

इसके लिए किसी भी रेंज (रेंज स्टेप्स का उपयोग सहित) का उपयोग किया जा सकता है, क्योंकि यह यूनिकोड का उपयोग करता है। इसलिए, range()सूची में अधिक वर्ण जोड़ने के लिए बढ़ाएँ ।
map()के chr()हर पुनरावृत्ति को बुलाता है range()


-7

नहीं, वहाँ नहीं है, लेकिन आप आसानी से एक बना सकते हैं:

    #Your ascii.py program:
    def charlist(begin, end):
        charlist = []
        for i in range(begin, end):
            charlist.append(chr(i))
        return ''.join(charlist)

    #Python shell:
    #import ascii
    #print(ascii.charlist(50, 100))
    #Comes out as:

    #23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc

11
स्वीकृत उत्तर के तीन साल बाद स्पष्ट रूप से उल्लेख किया गया है string.printable, आप दावा करते हैं "नहीं, वहाँ नहीं है"?
टोबियास किन्ज़लर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.