本节内容:
- 列表、元组操作
- 字符串操作
1. 列表、元组操作
列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
定义列表
1 |
|
通过下标访问列表中的元素,下标从0开始计数
1 2 3 4 5 6 7 8 |
|
切片:取多个元素
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4
3 ['Tenglan', 'Eric', 'Rain']
4 >>> names[1:-1] #取下标1至-1的值,不包括-1
5 ['Tenglan', 'Eric', 'Rain', 'Tom']
6 >>> names[0:3]
7 ['Alex', 'Tenglan', 'Eric']
8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
9 ['Alex', 'Tenglan', 'Eric']
10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
11 ['Rain', 'Tom', 'Amy']
12 >>> names[3:-1] #这样-1就不会被包含了
13 ['Rain', 'Tom']
14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
15 ['Alex', 'Eric', 'Tom']
16 >>> names[::2] #和上句效果一样
17 ['Alex', 'Eric', 'Tom']
View Code
追加
1 >>> names
2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
3 >>> names.append("我是新来的")
4 >>> names
5 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
View Code
插入
1 >>> names
2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
3 >>> names.insert(2,"强行从Eric前面插入")
4 >>> names
5 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
6
7 >>> names.insert(5,"从eric后面插入试试新姿势")
8 >>> names
9 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code
修改
1 >>> names
2 ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
3 >>> names[2] = "该换人了"
4 >>> names
5 ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code
删除
1 >>> del names[2]
2 >>> names
3 ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
4 >>> del names[4]
5 >>> names
6 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
7 >>>
8 >>> names.remove("Eric") #删除指定元素
9 >>> names
10 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
11 >>> names.pop() #删除列表最后一个值
12 '我是新来的'
13 >>> names
14 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
View Code
扩展
1 >>> names
2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
3 >>> b = [1,2,3]
4 >>> names.extend(b)
5 >>> names
6 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
View Code
拷贝
1 >>> names
2 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
3
4 >>> name_copy = names.copy()
5 >>> name_copy
6 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
View Code
统计
1 >>> names
2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
3 >>> names.count("Amy")
4 2
View Code
排序&翻转
1 >>> names
2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
3 >>> names.sort() #排序
4 Traceback (most recent call last):
5 File "<stdin>", line 1, in <module>
6 TypeError: unorderable types: int() < str() #3.0里不同数据类型不能放在一起排序了,擦
7 >>> names[-3] = '1'
8 >>> names[-2] = '2'
9 >>> names[-1] = '3'
10 >>> names
11 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
12 >>> names.sort()
13 >>> names
14 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
15
16 >>> names.reverse() #反转
17 >>> names
18 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
View Code
获取下标
1 >>> names
2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
3 >>> names.index("Amy")
4 2 #只返回找到的第一个下标
View Code
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
1 |
|
它只有2个方法,一个是count,一个是index,完毕。
程序练习
请闭眼写出以下程序。
程序:购物车程序
需求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
2. 字符串操作
1 >>> n3_arg
2 {'name': 'alex', 'age': 33}
3 >>> n3
4 'my name is {name} and age is {age}'
5 >>> n3.format_map(n3_arg)
6 'my name is alex and age is 33'
7
8
9 >>> n4.ljust(40,"-")
10 'Hello 2orld-----------------------------'
11 >>> n4.rjust(40,"-")
12 '-----------------------------Hello 2orld'
13
14
15 >>> s = "Hello World!"
16 >>> p = str.maketrans("abcdefg","3!@#$%^")
17 >>> s.translate(p)
18 'H$llo Worl#!
19
20
21 >>> b="ddefdsdff_哈哈"
22 >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
23 True
24
25 一些蛋疼的语法
View Code