Я написал функцию, которая создает матрицу на основе введенных значений. Однако, несмотря на функцию, возвращающую список, ее выходные данные отображаются как объекты-генераторы. В чем причина такой ситуации и как распечатать вывод функции в виде списка? Спасибо!
import random
def gnrtRandomMtrcs(row, column):
lowercase = list("abcdefghijklmnopqrstuvwxyz")
uppercase = list("ABCDEFGJKLMNPRSTUVWXYZ")
numbercase = list("0123456789")
random.shuffle(lowercase)
random.shuffle(uppercase)
random.shuffle(numbercase)
allcases = []
allcases.append(item for item in lowercase)
allcases.append(item for item in uppercase)
allcases.append(item for item in numbercase)
random.shuffle(allcases)
matrices = [[i * j for j in range(column)] for i in range(row)]
for i in range(row):
for j in range(column):
matrices[i][j] = random.choice(allcases)
return matrices
Пример вывода при параметрах 3 и 2:
[[<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E4F8>,
<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E4F8>],
[<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E4F8>,
<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E568>],
[<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E4F8>,
<generator object gnrtRandomMtrcs.<locals>.<genexpr> at 0x0337E4F8>]]
Но я хочу, чтобы вывод был таким:
[['L', '0'],['2', '6'],['b', 'K']]
Отредактировано: Проблема была решена, когда для l oop было написано длинный путь, а не в одной строке. Но я не понимаю, почему, потому что я думаю, что они оба имеют в виду одну и ту же ситуацию.
В этих строках:
allcases.append(item for item in lowercase)
allcases.append(item for item in uppercase)
allcases.append(item for item in numbercase)
Я внес эти исправления:
for item in lowercase:
allcases.append(item)
for item in uppercase:
allcases.append(item)
for item in numbercase:
allcases.append(item)
И, наконец, все вышло так, как я хотел.