Форум сайта python.su
0
>>> colors = ['black', 'white'] >>> sizes = ['S', 'M', 'L'] >>> tshirts = [(color, size) for color in colors for size in sizes] >>> tshirts [('black', 'S'), ('black', 'M'), ('black', 'L'), ('white', 'S'), ('white', 'M'), ('white', 'L')]
Отредактировано Kurtz (Апрель 14, 2016 10:55:05)
Офлайн
88
list.append поможет.
Офлайн
0
Чтобы избежать TypeError: append() takes exactly one argument (2 given), нужно было взять два параметра в скобки:
>>> tshirts = [] >>> for color in colors: ... for size in sizes: ... tshirts.append((color, size)) ... >>> tshirts [('black', 'S'), ('black', 'M'), ('black', 'L'), ('white', 'S'), ('white', 'M'), ('white', 'L')]
Отредактировано Kurtz (Апрель 14, 2016 10:52:25)
Офлайн
857
>>> import itertools >>> >>> colors = ['black', 'white'] >>> sizes = ['S', 'M', 'L'] >>> >>> list(itertools.product(colors, sizes)) [('black', 'S'), ('black', 'M'), ('black', 'L'), ('white', 'S'), ('white', 'M'), ('white', 'L')] >>>
Отредактировано py.user.next (Апрель 14, 2016 02:36:31)
Офлайн
0
Спасибо.
Офлайн
0
Условие задачи:
Write a program which takes 2 digits as input and generates a 2-dimensional array. The element value in the i-th row and j-th column of the array should be i*j.
Example.
Suppose the following inputs are given to the program:
3, 5
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]
input_str = raw_input() dimensions = [int(x) for x in input_str.split(',')] rowNum = dimensions[0] colNum = dimensions[1] multilist = [[0 for col in range(colNum)] for row in range(rowNum)] for row in range(rowNum): for col in range(colNum): multilist[row][col]= row*col print(multilist)
input_str = raw_input() row, col = [int(x) for x in input_str.split(',')] [[i*j for j in range(col)] for i in range(row)]
3, 5
[[i*j for j in range(5)] for i in range(3)]
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]
l1=[] l2=[] for i in range(3): for j in range(5): l1.append(i*j) l2.append(l1)
[[0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8], [0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8], [0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8]]
Отредактировано Kurtz (Июль 8, 2016 14:31:39)
Офлайн
857
KurtzЗабыл почистить список l1 после каждого добавления в l2.
Для этого я попытался воспроизвести мое решение через стандартные for loops, но у меня ничего не вышло:
Офлайн
0
py.user.nextl1 изначально неправильный:
Забыл почистить список l1 после каждого добавления в l2.
[0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8]
Офлайн
857
Kurtz
Весь for loop который я написал скорее всего неправильный.
>>> l1=[] >>> l2=[] >>> for i in range(3): ... for j in range(5): ... l1.append(i*j) ... l2.append(l1) ... l1 = [] ... >>> l2 [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]] >>>
Офлайн
0
Спасибо большое!
Отредактировано Kurtz (Июль 9, 2016 13:16:39)
Офлайн