अजगर: रेंज az कैसे प्रिंट करें?


110

1. प्रिंट एक: abcdefghijklmn

2. प्रत्येक सेकंड में: acegikm

3. url के सूचकांक में संलग्न करें {hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n


6
अजीब बात है कि एक "शुरुआती" सवाल पर आप अभी भी विभिन्न प्रकार के उत्तर प्राप्त कर सकते हैं। तथ्य यह है कि मैं टाइप कर सकता हूं इसका मतलब यह नहीं है कि मैं "अजगर" कर सकता हूं, मुझे वास्तव में गैंबलर के लिए गन्दा-चीजों पर जवाब पसंद है। आपके उत्तर के लिए सभी का धन्यवाद और - चीजों को सरल रखें, विशेष धन्यवाद gnibbler।
hhh

2
यह जवाब की एक जंगली किस्म नहीं है। यह दो किस्में हैं। एक उपयोग rangeऔर chr()दूसरे में तैयार की गई सूचियाँ string, जिनके बारे में बहुत से लोग नहीं सोचेंगे।
लेनरर्ट रेग्रोब

जवाबों:


190
>>> import string
>>> string.ascii_lowercase[:14]
'abcdefghijklmn'
>>> string.ascii_lowercase[:14:2]
'acegikm'

उरल्स करने के लिए, आप कुछ इस तरह का उपयोग कर सकते हैं

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]

1
मेरा मानना ​​है कि string.ascii_lowercase पहले से ही अजगर 2.x में काम करता था, इसलिए यह सुनिश्चित करने के लिए कि हमेशा ascii_lowercase का उपयोग करें।
johk95

1
@ johk95, वास्तव str.lowercaseमें स्थानीय निर्भर है इसलिए पहली जगह में सबसे अच्छा विकल्प नहीं था। मैंने इसे अपने उत्तर में बदल दिया है
जॉन ला रोय

नमस्ते, मुझे यह बताने में सक्षम होगा कि क्या यह केवल अंग्रेजी में उपलब्ध है? खिचड़ी भाषा मुझे अन्य भाषाओं के लिए भी मिलती है? धन्यवाद और सर्वश्रेष्ठ सादर
माइकल श्रॉटर

48

यह एक होमवर्क है ;-) - पुस्तकालयों आदि को बुलाने की कोई ज़रूरत नहीं है - यह संभवतः आपको chr / ord के साथ रेंज () का उपयोग करने की उम्मीद है, जैसे:

for i in range(ord('a'), ord('n')+1):
    print chr(i),

बाकी के लिए, बस सीमा के साथ थोड़ा और अधिक खेलें ()




12

वांछित मूल्यों के साथ एक सूची प्राप्त करें

small_letters = map(chr, range(ord('a'), ord('z')+1))
big_letters = map(chr, range(ord('A'), ord('Z')+1))
digits = map(chr, range(ord('0'), ord('9')+1))

या

import string
string.letters
string.uppercase
string.digits

यह समाधान ASCII तालिका का उपयोग करता है । ordएक चरित्र से ascii मूल्य प्राप्त करता है और chrइसके विपरीत।

आप सूचियों के बारे में जो जानते हैं उसे लागू करें

>>> small_letters = map(chr, range(ord('a'), ord('z')+1))

>>> an = small_letters[0:(ord('n')-ord('a')+1)]
>>> print(" ".join(an))
a b c d e f g h i j k l m n

>>> print(" ".join(small_letters[0::2]))
a c e g i k m o q s u w y

>>> s = small_letters[0:(ord('n')-ord('a')+1):2]
>>> print(" ".join(s))
a c e g i k m

>>> urls = ["hello.com/", "hej.com/", "hallo.com/"]
>>> print([x + y for x, y in zip(urls, an)])
['hello.com/a', 'hej.com/b', 'hallo.com/c']

ऐसा लगता है कि Python 3 में string.letters हटा दिए गए थे और केवल string.ascii_letters, बिल्कुल समान नहीं , उपलब्ध है
jonespm

8
import string
print 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']

1
पायथन 3 में इसे टूपल (जो अपरिवर्तनीय है) बनाने के लिए:tuple(string.ascii_lowercase)
एलेक्स विलीसन

6
import string
print 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']

तथा

for c in list(string.ascii_lowercase)[:5]:
    ...operation with the first 5 characters

4
myList = [chr(chNum) for chNum in list(range(ord('a'),ord('z')+1))]
print(myList)

उत्पादन

['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']

StackOverflow में आपका स्वागत है। अधिक स्पष्ट रूप से समझाने की कोशिश करें कि यह प्रश्न का पूर्ण उत्तर क्यों है।
बजे जेरेन हेयर

धन्यवाद। मुझे यह पसंद है कि आप इसे कैसे बनाते हैं।
हमासिस

2
#1)
print " ".join(map(chr, range(ord('a'),ord('n')+1)))

#2)
print " ".join(map(chr, range(ord('a'),ord('n')+1,2)))

#3)
urls = ["hello.com/", "hej.com/", "hallo.com/"]
an = map(chr, range(ord('a'),ord('n')+1))
print [ x + y for x,y in zip(urls, an)]

2

इस प्रश्न का उत्तर सरल है, बस एबीसी नामक एक सूची बनाएं जैसे:

ABC = ['abcdefghijklmnopqrstuvwxyz']

और जब भी आपको इसे संदर्भित करने की आवश्यकता हो, बस करें:

print ABC[0:9] #prints abcdefghij
print ABC       #prints abcdefghijklmnopqrstuvwxyz
for x in range(0,25):
    if x % 2 == 0:
        print ABC[x] #prints acegikmoqsuwy (all odd numbered letters)

यह भी उर डिवाइस को तोड़ने के लिए प्रयास करें: डी

##Try this and call it AlphabetSoup.py:

ABC = ['abcdefghijklmnopqrstuvwxyz']


try:
    while True:
        for a in ABC:
            for b in ABC:
                for c in ABC:
                    for d in ABC:
                        for e in ABC:
                            for f in ABC:
                                print a, b, c, d, e, f, '    ',
except KeyboardInterrupt:
    pass


1

यह आपका दूसरा प्रश्न है: string.lowercase[ord('a')-97:ord('n')-97:2]क्योंकि 97==ord('a')- यदि आप थोड़ा सीखना चाहते हैं तो आपको बाकी चीजों का पता लगाना चाहिए;;




0
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']

0

इसे करने का दूसरा तरीका

  import string
  pass

  aalist = list(string.ascii_lowercase)
  aaurls = ['alpha.com','bravo.com','chrly.com','delta.com',]
  iilen  =  aaurls.__len__()
  pass

  ans01 = "".join( (aalist[0:14]) )
  ans02 = "".join( (aalist[0:14:2]) )
  ans03 = "".join( "{vurl}/{vl}\n".format(vl=vjj[1],vurl=aaurls[vjj[0] % iilen]) for vjj in enumerate(aalist[0:14]) )
  pass

  print(ans01)
  print(ans02)
  print(ans03)
  pass

परिणाम

abcdefghijklmn
acegikm
alpha.com/a
bravo.com/b
chrly.com/c
delta.com/d
alpha.com/e
bravo.com/f
chrly.com/g
delta.com/h
alpha.com/i
bravo.com/j
chrly.com/k
delta.com/l
alpha.com/m
bravo.com/n

यह अन्य उत्तरों से कैसे भिन्न है

  • बेस यूआरएल की एक मनमानी संख्या पर पुनरावृति
  • urls के माध्यम से साइकिल चलाएं और तब तक न रुके जब तक हम अक्षरों से बाहर नहीं निकल जाते
  • enumerateसूची बोध और str.format के साथ संयोजन के रूप में उपयोग करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.