【问题标题】:Python start line with a letter when printing a list?Python在打印列表时以字母开头?
【发布时间】:2023-03-19 10:12:01
【问题描述】:

我希望我的代码打印为

a. [value1]
b. [value2]
c. [value3]
d. [value4]
e. [value5]
f. [value6]

我目前有一个简单的计数器,格式为

counter = 0
for key in sorted(word_counter):
    counter+=1
    print(counter, key, word_counter[key])

Word_counter 用于我已经编写完成的另一个函数,我只想修复它的打印方式。它目前在开头使用数字,但我希望它像第一个示例一样使用字母。

忘了添加,一旦它击中 z,我希望下一个字母是 aa。 bb。诸如此类:

x. [value24]
y. [value25]
z. [value26]
aa. [value27]
bb. [value28]
cc. [value29]

字母表的每次迭代都会在末尾添加一个字母。

【问题讨论】:

    标签: python list printing alphabetical enumerate


    【解决方案1】:

    这很简单:

    >>> import string
    >>> from itertools import cycle
    >>> x = range(100)
    >>> letters = string.ascii_lowercase
    >>> m = len(letters)
    >>> for i, (let, e) in enumerate(zip(cycle(letters), x)):
    ...     print("{}. [{}]".format(let*(i//m+1), e))
    ...
    a. [0]
    b. [1]
    c. [2]
    d. [3]
    e. [4]
    f. [5]
    g. [6]
    h. [7]
    i. [8]
    j. [9]
    k. [10]
    l. [11]
    m. [12]
    n. [13]
    o. [14]
    p. [15]
    q. [16]
    r. [17]
    s. [18]
    t. [19]
    u. [20]
    v. [21]
    w. [22]
    x. [23]
    y. [24]
    z. [25]
    aa. [26]
    bb. [27]
    cc. [28]
    dd. [29]
    ee. [30]
    ff. [31]
    gg. [32]
    hh. [33]
    ii. [34]
    jj. [35]
    kk. [36]
    ll. [37]
    mm. [38]
    nn. [39]
    oo. [40]
    pp. [41]
    qq. [42]
    rr. [43]
    ss. [44]
    tt. [45]
    uu. [46]
    vv. [47]
    ww. [48]
    xx. [49]
    yy. [50]
    zz. [51]
    aaa. [52]
    bbb. [53]
    ccc. [54]
    ddd. [55]
    eee. [56]
    fff. [57]
    ggg. [58]
    hhh. [59]
    iii. [60]
    jjj. [61]
    kkk. [62]
    lll. [63]
    mmm. [64]
    nnn. [65]
    ooo. [66]
    ppp. [67]
    qqq. [68]
    rrr. [69]
    sss. [70]
    ttt. [71]
    uuu. [72]
    vvv. [73]
    www. [74]
    xxx. [75]
    yyy. [76]
    zzz. [77]
    aaaa. [78]
    bbbb. [79]
    cccc. [80]
    dddd. [81]
    eeee. [82]
    ffff. [83]
    gggg. [84]
    hhhh. [85]
    iiii. [86]
    jjjj. [87]
    kkkk. [88]
    llll. [89]
    mmmm. [90]
    nnnn. [91]
    oooo. [92]
    pppp. [93]
    qqqq. [94]
    rrrr. [95]
    ssss. [96]
    tttt. [97]
    uuuu. [98]
    vvvv. [99]
    

    【讨论】:

      【解决方案2】:

      利用字符串包。

      import string

      list_of_alphabets = list(string.ascii_lowercase)

      for i in range(your number(not greater than 26)): print list_of_alphabets[i] #your task of printing value

      【讨论】:

        【解决方案3】:
        import string
        
        In [7]:     def letter(n):
           ...:         alphabet = string.ascii_lowercase
           ...:     
           ...:         count = 0 
           ...:         while count < n:
           ...:             iteration = (int(count / 26.) + 1)
           ...:             letter = alphabet[count % 26]
           ...:             yield letter * iteration
           ...:             count += 1
           ...:     
           ...:     print '\n'.join(['{0} value{1}'.format(l, i) for i, l in enumerate(letter(100))])
        
        a value0
        b value1
        c value2
        d value3
        e value4
        f value5
        g value6
        ...
        dd value29
        ee value30
        ff value31
        gg value32
        hh value33
        ii value34
        jj value35
        ...
        

        【讨论】:

        • 不需要alphabet = list(string.ascii_lowercase)str 是 Python 中的一个序列,支持直接迭代它的单个字符。
        • 另外,如果可能的话,你应该将你的 while 循环重构为 for 循环,它们明显更快。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        • 1970-01-01
        • 2016-01-08
        • 2013-02-22
        • 2020-10-05
        • 2016-05-17
        相关资源
        最近更新 更多