回到首页☞
定位:
常规使用,必须熟练
1、列表遍历
books = ["三国演义", "红楼梦", "西游记", "水浒传"]
for book in books:
print(book)
for循环比Java 简单太多,但是要注意其特性,python没有{}的明显的作用域标志。
- :不要遗漏,表示一个块的开始
- 缩进要精准不要多也不要少
- 空白块无逻辑可以用pass
2、创建列表
当然现在JDK 也有简介的写法,通用功能封装进底层才是最高效的。但是大多停留在JDK 7 8的阶段,很少有项目使用 JDK12、14等版本和新特性。
# range 构建1 ~10
for value in range(1, 10):
pass
# 通过range 遍历 0~10所有的偶数
for value in range(0, 10, 2):
pass
# 通过range 构造列表
print(list(range(1, 10)))
# 通过range 构造1~11的平方的列表
squares = []
for value in range(1, 11):
squares.append(value ** 2)
print(squares)
# 随机数生成一个列表,对列表进行简单统计
import numpy as np
digits = np.random.randint(1,100,10)
print(digits)
print(min(digits))
print(max(digits))
print(sum(digits))
out:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[52 91 8 4 28 93 70 79 83 84]
4
93
592
有些东西很简单就懒得输出了直接pass
反思:python最大的功用在于科学计算,所以想numpy这类库才是核心
3、列表解析
进一步把for循环简化成一行
import numpy as np
squares = [value ** 2 for value in np.random.randint(1, 100, 10)]
print(squares)
out:[400, 4096, 676, 64, 6561, 9604, 3249, 4761, 81, 324]
代码确实精简,但是编码的核心不仅要精简而且可读性要强,如果特别复杂,最好拆开来写。
4、使用列表的一部分-切片
import numpy as np
intList = np.random.randint(1, 100, 10)
print(intList)
print(intList[0:3])
out:
[98 15 68 41 49 26 88 32 67 27]
[98 15 68]
5、复制列表
import numpy as np
intList = list(np.random.randint(1, 100, 10))
intArray = intList
print(intList)
intList.pop()
print(intArray)
inta = list(np.random.randint(1, 100, 10))
intb = inta[:]
print(inta)
inta.pop()
print(intb)
out:
[66, 50, 84, 4, 79, 97, 14, 69, 98, 60]
[66, 50, 84, 4, 79, 97, 14, 69, 98]
[72, 79, 2, 71, 33, 80, 31, 21, 13, 74]
[72, 79, 2, 71, 33, 80, 31, 21, 13, 74]
对比下,就能之到切片复制和直接赋值的区别。
6、元组
列表存储的数据是可以CRUD的,可以存一些有些数据,但是有些数据不可变的,我们把不可变的数据组成的列表成为元组。
列表是[],元组是()
a = (1, 2)
print(type(a))
print(a[0])
a[0] = 2
out:
Traceback (most recent call last):
File “F:/workspace/py/HelloWorld/Test.py”, line 10, in
a[0] = 2
TypeError: ‘tuple’ object does not support item assignment
<class ‘tuple’>
1
说明,只读不能写。
元组相当于java的枚举类,常用来做常量集合,在JDBC中可以表示查询字段属性。