【问题标题】:Enumerate with letters instead of numbers [duplicate]用字母而不是数字枚举[重复]
【发布时间】:2020-09-13 20:51:39
【问题描述】:

有没有办法在 python 中执行与 enumerate() 相同的功能,但用字母代替?

例如

x = ['block', 'cheese']

for i, word in enumerate(x):
    print((i, word))

会产生

(1, 'block')
(2, 'cheese')

有没有直接的方法来制作这个?

('A', 'block')
('B', 'cheese')

【问题讨论】:

标签: python python-3.x loops


【解决方案1】:

您最多可以对 26 个元素执行以下操作:

import string

x = ['block', 'cheese']

for i, word in zip(string.ascii_uppercase, x):
    print((i, word))

输出

('A', 'block')
('B', 'cheese')

【讨论】:

    【解决方案2】:

    不,这是不可能的。

    但也许string.ascii_lowercase 可以帮助你

    import string
    string.ascii_lowercase
    >>>>> 'abcdefghijklmnopqrstuvwxyz'
    string.ascii_lowercase[0]
    >>>>> a
    

    【讨论】:

      【解决方案3】:

      您可以相对容易地使用生成器模仿 Excel 的行为:

      def mimic_excel():
          for i in range(0, 26):
              yield chr(i + 65)
      
          i, j = [0, 0]
      
          for j in range(0, 26):
              for i in range(0, 26):
                  yield "{}{}".format(chr(j + 65), chr(i + 65))
      
      
      for letter in mimic_excel():
          print(letter)
      

      这会产生

      A
      B
      C
      ...
      ZX
      ZY
      ZZ
      

      【讨论】:

        猜你喜欢
        • 2020-06-22
        • 1970-01-01
        • 2023-01-31
        • 1970-01-01
        • 1970-01-01
        • 2011-12-16
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多