如果我必须根据包含 [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循环,你可以得到你想要的。
卡在一处。
我有一个包含 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循环,你可以得到你想要的。