Объяснение:



Выражение alst = alst * 2 внутри afnc() создаёт новый список, а не меняет существующий. И при выходе из функции это значение теряется.



В то же время extend() модифицирует именно исходный список, а потому blst превращается из [1, 2, 3] в [1, 2, 3, 1, 2, 3].