Python: цикл For добавляет только последний элемент количеством в len() раз

Простите за очередной нупский вопрос. Честно перечитал всё про цикл For, но самостоятельно что-то не усекаю, видимо. Нужно для каждого элемента поменять тип str на тип int.

#каждый элемент подсписков имеет тип str:
b = [['2018', '01', '12'], ['2018', '01', '15'], ['2018', '01', '16'], ['2018', '01', '17']]
d = []
f = []

#попытка для каждого элемента поменять тип str на int (успешная):
for i in range(len(b)):
    list.clear(d)
    d.append(int(b[i][0]))
    d.append(int(b[i][1]))
    d.append(int(b[i][2]))
    print(d)
    # print(d) выдаёт значения вида: [2018, 1, 12]
                                   # [2018, 1, 15]
                                   # [2018, 1, 16] 
                                   # [2018, 1, 17] (как раз такие мне нужны)
    f.append(d) # то есть после каждого прохода цикла в d мы собираем список вида 
#[2018, 1, 15], потом его отгружаем в список списков f.
print(len(f), f)

А вот в списке f получаются одинаковые значения:

[[2018, 1, 17], [2018, 1, 17], [2018, 1, 17], [2018, 1, 17], [2018, 1, 17]]

То есть вставляется последний элемент из списка b (но уже с типом int).

Код без моих комментариев:

b = [['2018', '01', '12'], ['2018', '01', '15'], ['2018', '01', '16'], ['2018', '01', '17']]
d = []
f = []
for i in range(len(b)):
    list.clear(d)
    d.append(int(b[i][0]))
    d.append(int(b[i][1]))
    d.append(int(b[i][2]))
    print(d)
    f.append(d)
    print(len(f), f)

Вывод:

[2018, 1, 12]
[2018, 1, 15]
[2018, 1, 16] 
[2018, 1, 17]
[[2018, 1, 17], [2018, 1, 17], [2018, 1, 17], [2018, 1, 17], [2018, 1, 17]]

Ответы (2 шт):

Автор решения: Эникейщик

Заменить

f.append(d)

на

f.append(d[:])
→ Ссылка
Автор решения: AndroID

Можно использовать функцию map.

b = [['2018', '01', '12'], ['2018', '01', '15'], ['2018', '01', '16'], ['2018', '01', '17']]

def alltoint(enum):
    for i in range(len(enum)) :
        enum[i] = list(map(lambda x: int(x), enum[i]))
    return enum

print(alltoint(b))
# [[2018, 1, 12], [2018, 1, 15], [2018, 1, 16], [2018, 1, 17]]
→ Ссылка