python:入门到实践书籍学习(二)
第3、4章 列表
在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。对于其中的元素类型并不做限制。
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。下标以0开始。
要访问列表的任何元素,都可将其位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。若时索引值为负则倒序获取,通过将索引指定为-1 ,可让Python返回最后一个列表元素。
test_list = [1,2,3,4,5,6] # 获取下标为0的列表元素 print(test_list[0]) # 获取下标为2的列表元素 print(test_list[2]) # 获取下标为4的列表元素 print(test_list[4]) ''' 输出结果 1 3 5 '''
可以像使用变量一样使用列表的值
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] message = "My first bicycle was a " + bicycles[0].title() + "." print(message)
列表的添加删除与修改:
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles[0] = 'ducati' print(motorcycles) ''' ['honda', 'yamaha', 'suzuki'] ['ducati', 'yamaha', 'suzuki'] '''
# 末尾添加 motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles.append('ducati') print(motorcycles) ''' ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha', 'suzuki', 'ducati'] ''' # 使用方法insert() 可在列表的任何位置添加新元素 motorcycles = ['honda', 'yamaha', 'suzuki'] motorcycles.insert(0, 'ducati') print(motorcycles)
如果知道要删除的元素在列表中的位置,可使用del 语句。
方法pop() 可删除列表末尾的元素,并能够接着使用它。实际上,可以使用pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
如果只知道要删除的元素的值,可使用方法remove() 。
注意 方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
# 使用del motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) del motorcycles[0] print(motorcycles) ''' ['honda', 'yamaha', 'suzuki'] ['yamaha', 'suzuki'] ''' # 使用pop 可以获取到删除的值 motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) popped_motorcycle = motorcycles.pop() print(motorcycles) print(popped_motorcycle) ''' ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha'] suzuki ''' # 使用remove删除 motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] print(motorcycles) motorcycles.remove('ducati') print(motorcycles) ''' ['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki'] '''
Python方法sort() 能够较为轻松地对列表进行排序。还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。
函数sorted() 能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
len()方法可以获取对象长度。
列表方法
方法 | 描述 |
append() | 向列表末尾添加一个元素 |
insert() | 向对应下标位置添加元素 |
index() | 获取对应元素的下标 |
pop() | 删除对应下标的元素并返回 默认值为列表最末元素 |
remove() | 删除对应元素 只能删除第一个 |
reverse() | 反转列表 |
for循环
循环是为了让计算机自动完成重复工作的常见方式之一。
语法格式
for 循环变量 in 可迭代对象:
循环体
else:(可选的整个循环完成后执行)
代码块
range()函数用于生成一系列的数字例如:
# 输出0-9 10个数字 需要注意循环左闭右开 for i in range(10): print(i) # 输出2-11步长为2 range(start,stop,step)开始,结束,步长 结果为 2 4 6 8 10 for i in range(2,11,2): print(i)
min,max,sum 最小值,最大值,和
列表生成式:
test_list = [i**i for i in range(10)] test_list2 = [i for i in range(1,20,2)] # 输出1,20的奇数 test_list3 = [ i for i in range(3,30) if i%3==0] # 输出3,30能被整除的数 test_list4 = [ i**i for i in range(1,11)] # 输出1,10的立方
列表切片:
test_list = [i for i in range(10)] print(test_list) print(test_list[0:3]) # 获取前3个元素 print(test_list[1:4]) # 获取第2到4个元素 print(test_list[:4]) # 获取前4个元素 print(test_list[2:]) # 获取第3个元素到末尾的元素 print(test_list[-3:]) # 获取最后三个元素 # 如果要遍历列表的部分元素,可在for 循环中使用切片。 for i in test_list[2:7]: print(i)
元组:
元组是不可变的,看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
像列表一样,也可以使用for 循环来遍历元组中的所有值
pep8:
PEP8建议每级缩进都使用四个空格。
代码建议每行不超过80字符。
要将程序的不同部分分开,可使用空行。