Способ 1 — цикл for:
squares = []
for i in range(1, 11):
squares.append(i * i)
print(squares)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Способ 2 — list comprehension (более «питоничный»):
squares = [i * i for i in range(1, 11)]
print(squares)
Способ 3 — через map:
squares = list(map(lambda i: i ** 2, range(1, 11)))
List comprehension читается как «возьми $i \cdot i$ для каждого $i$ из диапазона 1..10». Это короче, обычно быстрее и нагляднее цикла. Можно добавить фильтр:
# только квадраты чётных чисел
even_sq = [i * i for i in range(1, 11) if i % 2 == 0]
# [4, 16, 36, 64, 100]
Компрехеншены есть и для словарей ({k: v for ...}), множеств ({x for ...}), генераторов ((x for ...)).