以身为棋,胜天半子
整理以前写的代码,复习一下基础知识
li = []
for i in range(20):
if (i % 2) == 0:
li.append(i)
print(li)
结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
很简单的数组遍历添加,for循环加if判断筛选出20以内的偶数
li = [1] * 10
li[3] = 3
print(li)
结果:[1, 1, 1, 3, 1, 1, 1, 1, 1, 1]
快速填充数组和修改
li = [i * 2 for i in range(10)]
print(li)
结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
结果和第一段代码一样,但这个是填充数组,循环并做简单数据变换
li_2d = [[0] * 3] * 3
print(li_2d)
li_2d[0][0] = 100
print(li_2d)
li_2d = [[0] * 3 for i in range(3)]
li_2d[0][0] = 100
print(li_2d)
结果:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[100, 0, 0], [100, 0, 0], [100, 0, 0]]
[[100, 0, 0], [0, 0, 0], [0, 0, 0]]快速填充二维数组
注意第二段输出和第三段输出的区别
一个使用*3复制填充数组,那么复制出来的数据还是纸箱一处的,所以改动一处其它也会变动,而for循环是循环添加操作,刻意单独操作一处数据
s = {x for x in range(10) if x % 2 == 0}
print(s)
结果:{0, 2, 4, 6, 8}
一行代码循环判断生成set
d = {x: x % 2 == 0 for x in range(10)}
print(d)
结果:{0: True, 1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False}
一行代码生成字典
for index,i in enumerate(range(9)):
print(str(index)+":"+str(i))
结果;0:0
1:1
2:2
3:3
4:4
5:5
6:6
7:7
8:8带下标的循环,可同时取到下标和下标对应的值