在python,学校项目中的元组元组

时间:2016-11-03 18:25:09

标签: python

我正在参加一个大学项目!在python中编程,我需要创建一个名为generate_key的函数,它接收一个名为letters的参数,它是一个包含25个字符的元组。该函数应返回5元组字符的元组,每个字符有5个元素,即由行排列的字母。 例如:

>>> letters = (‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, \
... ‘H’, ‘I’, ‘J’, ‘ ’, ‘L’, ‘M’, ‘N’, \
... ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, \
... ‘V’, ‘X’, ‘Z’, ‘.’)

>>> generate_key(letters)
... ((‘A’, ‘B’, ‘C’, ‘D’, ‘E’),
... (‘F’, ‘G’, ‘H’, ‘I’, ‘J’),
... (‘ ’, ‘L’, ‘M’, ‘N’, ‘O’),
... (‘P’, ‘Q’, ‘R’, ‘S’, ‘T’),
... (‘U’, ‘V’, ‘X’, ‘Z’, ‘.’))

1 个答案:

答案 0 :(得分:0)

您可以使用itertools.islice()创建自定义迭代器函数:

from itertools import islice

def chunk(my_iter, size):
    my_iter = iter(it)
    return iter(lambda: tuple(islice(my_iter, size)), ())

现在使用此功能将自定义尺寸的列表划分为:

>>> import string  # for getting all the alphabets
>>> my_list = list(string.ascii_uppercase) + ['.']
# my_list holds the value:
# ['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', '.']
>>> my_size = 5
>>> list(chunk(my_list, my_size))
[('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', '.')]
相关问题