如果我必须根据包含 [A,B,C...,AA] 的数据生成列表的长度以 A 结尾开始,如何制作列表?

How to make an list if i have to start with A end according to length of data generate list containing [A,B,C...,AA]?

卡在一处。

我有一个包含 n 个元素的列表,所以根据长度, 我必须生成列表。

例如,我有一个列表包含 25 个元素,那么新列表将是 [A,B,C,...,Y],例如列表包含 26 个元素,然后是 [A,B,C,... ,Z].

最多 z 我可以轻松获得列表,但现在我获得的元素超过 26 个。 例如长度是 27 那么我想要这些类型的列表 [A,B,C,...,Y,Z,AA].

所以,我如何获得这些类型的列表有什么建议吗???

你可以这样做:

import string
def letters_list_generator(number):
    alphabet_string = string.ascii_uppercase
    alphabet_list = list(alphabet_string)
    letter_list = []
    for i in range(0,number):
        multiplier = int(i/26)+1
        letter_index = i%26
        string_for_list = alphabet_list[letter_index] * multiplier
        letter_list.append(string_for_list)
    return letter_list

下面是 itertools 的写法:itr 生成无限多的组合,首先是长度 1,然后是长度 2,等等。使用 islice 需要所需的元素数量。

from string import ascii_uppercase
from itertools import product, count, islice

itr = ("".join(tup) 
  # choose number of letters, e.g. 1, 2, 3 
  for k in count(1)
  # choose all tuples of k letters, e.g. (A, ), (B, ), ... (A, A,) ...
  for tup in product(ascii_uppercase, repeat=k))

res = list(islice(itr, 28))

例如你可以试试这个代码:

list_1 = ['A', 'B', 'C']
list_2 = ['1', '2', '3']
list_3 = []
for i in range(3):
    list_3.append(list_1[i] + list_2[i]

结果是sum = ['A1', 'B2', 'C3']。如果你玩for循环,你可以得到你想要的。