列表
1,采用生成式的方式生成列表
代码:
list1=[i for i in range(0,5)]
print(list1)
输出结果:[0, 1, 2, 3, 4]
此时生成的是列表
f1= [i ** 2 for i in range(1, 10)]
print(sys.getsizeof(f))
print(f)
注:getsizeof()查看对象所占内存的字节数
结果:
192
<class ‘list’>
[1, 4, 9, 16, 25, 36, 49, 64, 81]
生成器方式
f = (x ** 2 for x in range(1, 10))
print(sys.getsizeof(f))
print(type(f))
print(f)
for one in f:
print(one)
结果:
120
<class ‘generator’>
<generator object at 0x0000026EE4973EC8>
1 ……
生成式和生成器的不同是
生成器的占用内存较小
生成字典
dict1=dict(one=1,two=2,three=3,four=4)
dict2=dict(zip([‘a’,‘b’,‘c’],‘123’))
dict3={‘b’:1,‘n’:“d”,‘f’:‘f’}
dict4={dic:dic**2 for dic in range(1,6) }
print(dict2,dict1,dict3,dict4)
结果:
{‘a’: ‘1’, ‘b’: ‘2’, ‘c’: ‘3’}
{‘one’: 1, ‘two’: 2, ‘three’: 3, ‘four’: 4}
{‘b’: 1, ‘n’: ‘d’, ‘f’: ‘f’}
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}