【问题标题】:Python: how to print range a-z?Python:如何打印范围 a-z?
【发布时间】:2011-03-12 12:47:10
【问题描述】:

1.打印 a-n: a b c d e f g h i j k l m n

2。 a-n 中的每一秒: a c e g i k m

3.附加到 urls{hello.com/, hej.com/, ..., hallo.com/} 的索引: hello.com/a hej.com/b ... hallo.com/n

【问题讨论】:

  • 奇怪的是,对于“初学者”问题,您仍然可以获得各种答案。我可以打字的事实并不意味着我可以“python”,我真的很喜欢 gnibbler 的回答而不是 for-messy-things。感谢大家的回答 - 让事情变得简单,特别感谢 gnibbler。
  • 这不是各种各样的答案。是两个品种。一个使用rangechr(),另一个使用string中的现成列表,这是很多人不会想到的。

标签: python string list range ascii


【解决方案1】:
>>> 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])]

【讨论】:

  • 我相信 string.ascii_lowercase 已经在 python 2.x 中工作了,所以要确保总是使用 ascii_lowercase。
  • @johk95,实际上str.lowercase 依赖于语言环境,因此一开始就不是最佳选择。我已经在我的答案中替换了它
  • 您好,能否告诉我这是否只有英文版?我不能对其他语言也一样吗?谢谢和最好的问候
【解决方案2】:

提示:

import string
print string.ascii_lowercase

for i in xrange(0, 10, 2):
    print i

"hello{0}, world!".format('z')

【讨论】:

    【解决方案3】:
    for one in range(97,110):
        print chr(one)
    

    【讨论】:

      【解决方案4】:

      这是你的第二个问题:string.lowercase[ord('a')-97:ord('n')-97:2] 因为97==ord('a') -- 如果你想学习一点,你应该自己弄清楚其余的;-)

      【讨论】:

        【解决方案5】:

        假设这是一项家庭作业 ;-) - 无需调用库等 - 它可能希望您将 range() 与 chr/ord 一起使用,如下所示:

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

        剩下的,多玩一点 range()

        【讨论】:

          【解决方案6】:

          关于 gnibbler 的回答。

          Zip 函数,full explanation,返回a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...] 构造被称为list comprehension,非常酷的功能!

          【讨论】:

            【解决方案7】:
            #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)]
            

            【讨论】:

              【解决方案8】:

              获取包含所需值的列表

              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 tableord 从字符中获取 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']
              

              【讨论】:

              • 看起来 string.letters 在 Python 3 中被删除了,只有 string.ascii_letters, not exactly the same 可用
              【解决方案9】:

              试试:

              strng = ""
              for i in range(97,123):
                  strng = strng + chr(i)
              print(strng)
              

              【讨论】:

                【解决方案10】:
                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']
                

                【讨论】:

                • 在 Python 3 中使其成为元组(不可变):tuple(string.ascii_lowercase)
                【解决方案11】:
                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']
                

                【讨论】:

                  【解决方案12】:

                  这个问题的答案很简单,只要像这样制作一个名为 ABC 的列表:

                  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)
                  

                  也试试这个来破坏你的设备:D

                  ##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
                  

                  【讨论】:

                    【解决方案13】:
                    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
                    

                    【讨论】:

                      【解决方案14】:

                      另一种方法

                      import string
                      
                      aalist = list(string.ascii_lowercase)
                      aaurls = ['alpha.com','bravo.com','chrly.com','delta.com',]
                      iilen  =  aaurls.__len__()
                      
                      ans01 = "".join( (aalist[0:14]) )
                      ans02 = "".join( (aalist[0:14:2]) )
                      ans03 = "".join( "{vurl}/{vl}\n".format(vl=vlet,vurl=aaurls[vind % iilen]) for vind,vlet in enumerate(aalist[0:14]) )
                      
                      print(ans01)
                      print(ans02)
                      print(ans03)
                      

                      结果

                      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
                      

                      这与其他回复有何不同

                      • 遍历任意数量的基本网址
                      • 使用模运算循环浏览网址,直到我们用完字母才停止
                      • enumerate与列表理解和str.format结合使用

                      【讨论】:

                        【解决方案15】:

                        我希望这会有所帮助:

                        import string
                        
                        alphas = list(string.ascii_letters[:26])
                        for chr in alphas:
                         print(chr)
                        

                        【讨论】:

                          【解决方案16】:
                          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。尝试更清楚地解释为什么这是对问题的完整答案。
                          • 谢谢。我喜欢你构建它的方式。
                          【解决方案17】:
                          import string
                          
                          string.printable[10:36]
                          # abcdefghijklmnopqrstuvwxyz
                              
                          string.printable[10:62]
                          # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
                          

                          【讨论】:

                            【解决方案18】:
                            # Assign the range of characters
                            first_char_start = 'a'
                            last_char = 'n'
                            
                            # Generate a list of assigned characters (here from 'a' to 'n')
                            alpha_list = [chr(i) for i in range(ord(first_char), ord(last_char) + 1)]
                            
                            # Print a-n with spaces: a b c d e f g h i j k l m n
                            print(" ".join(alpha_list))
                            
                            # Every second in a-n: a c e g i k m
                            print(" ".join(alpha_list[::2]))
                            
                            # Append a-n to index of urls{hello.com/, hej.com/, ..., hallo.com/}
                            # Ex.hello.com/a hej.com/b ... hallo.com/n
                            
                            #urls: list of urls
                            results = [i+j for i, j in zip(urls, alpha_list)]
                            
                            #print new url list 'results' (concatenated two lists element-wise)
                            print(results)
                            

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2014-11-05
                              • 2021-03-29
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2022-10-15
                              • 1970-01-01
                              相关资源
                              最近更新 更多