Shallow Dream

Keep It Simple and Stupid!

0%

第四章_操作列表

不赘述,仅仅记录一些和 C 不同  易混淆  我认为重要的地方

不懂的请使用搜索引擎  看书  询问老师解决  问我(不嫌弃的话

推荐网站:菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html

内容参考:《Python编程 从入门到实践》(第二版)

遍历列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## for
for i in n: # 不要忘记':',他告诉Python,下一行是循环的第一行
print() # 语句1
print() # 语句2
print() # 语句3
# 所有循环内的语句都要有缩进,而循环外的不需要
# 其中语句1,2是循环内的,语句3是循环外的

teachers = ['a','b','c']
for teacher in teachers: # 依次取出列表中的元素赋给teacher
print(teacher)
------
Output:
a
b
c

range()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
range(a,b,step)		# 生成一系列数,[a,b),a、a+step、a+2*step...
for value in range(1,5): # 没有步长时默认是 1
print(value)
------
Output:
1
2
3
4

for value in range(2,11,2): # 可以设置步长,没有步长时默认是 1
print(value)
------
Output:
2
4
6
8
10

squares = []
for value in range(1,11): # 计算前十个整数的平方并放入列表
squares.append(value**2) # 搭积木..
print(squares)
------
Output:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

list()

1
2
3
4
5
nums = list(range(1,6))			# 用list()函数生成列表
print(nums)
------
Output:
[1, 2, 3, 4, 5]

对于数字列表

1
digits = [1,2,3,4,5,6,7,8,9,0,1,5]

max()

1
2
3
4
print(max(digits))			# max() 最大值
------
Output:
9

min()

1
2
3
4
print(min(digits))			# min() 最小值
------
Output:
0

sum()

1
2
3
4
print(sum(digits))			# sum() 求和
------
Output:
51

列表解析

1
2
3
4
5
squares = [value**2 for value in range(1,11)]	# 同range() L21~27
print(squares)
------
Output:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
str = ['a','b','c','d','e']		# 能切出子集
print(str[1:3]) # [a:b],对应列表[a,b)位置上的元素
print(str[1:1]) # [a:a]
print(str[:4]) # [:b],自动从开头到b)
print(str[1:]) # [a:],自动从[a到结尾
------
Output:
['b', 'c']
[]
['a', 'b', 'c', 'd']
['b', 'c', 'd', 'e']

str = ['a','b','c','d','e']
for s in str[:3]: # 当然可以遍历
print(s)
------
Output:
a
b
c

复制列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
str = ['a','b','c','d','e']
str2 = str[:] # 合理运用切片
str2.append('123')
str.append('321')
print(str)
print(str2)
------
Output:
['a', 'b', 'c', 'd', 'e', '321']
['a', 'b', 'c', 'd', 'e', '123']

str2 = str # 这是不可以的,这并不是复制列表,而是对str2和str进行关联
str2.append('123') # 修改可以发现,两个是一块修改的
str.append('321')
------
Output:
['a', 'b', 'c', 'd', 'e', '123', '321']
['a', 'b', 'c', 'd', 'e', '123', '321']

元组

列表可以被修改,但是有的时候我们并不希望元素被修改

比如一年有12个月,每个月的天数(31,28,31,30,31,30,31,31,30,31,30,31)

这种不可变的列表被称为元组

看起来像列表,但是使用小括号 ' ( ) ' 而不是中括号 ' [ ] '

1
2
3
4
5
6
7
dimensions = (31,28,31,30,31,30,31,31,30,31,30,31)
print(dimensions[0])
print(dimensions[1])
------
Output:
31
28

那如果我如何修改元组变量呢?

比如如果是闰年的时候,2月就是29天了

1
2
3
4
5
6
7
8
dimensions = (31,28,31,30,31,30,31,31,30,31,30,31)
print(dimensions[1]) # 如果不知道为啥是1不是2,建议去复习一下第三章
dimensions = (31,29,31,30,31,30,31,31,30,31,30,31) # 只需要重新定义元组
print(dimensions[1])
------
Output:
28
29

代码格式

请好好看书,代码写出来干净整洁,会令人心情愉悦,如果有bug也方便他人阅读debug,个人感觉Python格式要求是比较严格的(C语言通过大括号分割语句,所以代码如果想丑是可以丑出天际的)

《Python编程 从入门到实践》(第2版) P60~61

另外

Google 开源项目风格指南——Python风格指南 也是个不错的参考

https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/contents/

先有用,再简洁,切勿舍本逐末

end?