# 这里首先使用range函数创建了1~9的列表(含头不含尾),之后采用for...in循环取出列表中的每一个元素放在空列表f中
f = [x for x in range(1,10)]
print(f) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 高级点的,排列组合型
g = [x+y for x in 'ABCD' for y in '1234567']
print(g)
# ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'C1', 'C2', 'C3', 'C4', 'C5',
# 'C6', 'C7', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7']
# 此处对比了以下两种方法创建列表所占内存大小
import sys
h = [x**2 for x in range(1,10)]
print(h) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
# 计算所占内存大小
print(sys.getsizeof(h)) # 184
h1 = (x**2 for x in range(1,10))
print(h1) # <generator object <genexpr> at 0x0000013CD3D7F820>
print(sys.getsizeof(h1)) # 112
for i in h1:
print(i, end=' ')