什么是python相当于perl“a”..“azc”

前端之家收集整理的这篇文章主要介绍了什么是python相当于perl“a”..“azc”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@在perl中,要获取从“a”到“azc”的所有字符串的列表,要做的只是使用范围运算符:
  1. perl -le 'print "a".."azc"'

我想要的是一个字符串列表:

  1. ["a","b",...,"z","aa","az","ba","azc"]

我想我可以使用ord和chr,一遍又一遍地循环,这很容易得到“a”到“z”,例如:

  1. >>> [chr(c) for c in range(ord("a"),ord("z") + 1)]
  2. ['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. from string import ascii_lowercase
  2. from itertools import product
  3.  
  4. def letterrange(last):
  5. for k in range(len(last)):
  6. for x in product(ascii_lowercase,repeat=k+1):
  7. result = ''.join(x)
  8. yield result
  9. if result == last:
  10. return

编辑:@ihightower在评论中提问:

I have no idea what I should do if I want to print from ‘b’ to ‘azc’.

所以你想从“a”以外的东西开始.只需丢弃起始值之前的任何内容

  1. def letterrange(first,last):
  2. for k in range(len(last)):
  3. for x in product(ascii_lowercase,repeat=k+1):
  4. result = ''.join(x)
  5. if first:
  6. if first != result:
  7. continue
  8. else:
  9. first = None
  10. yield result
  11. if result == last:
  12. return

猜你在找的Python相关文章