列表与元组
1. 列表(list)
1.1 定义
列表类似于 Java 中的数组,但是它更强大,可以存放 任意 数据类型。
列表的内容 可以改变,字符串的内容 不可改变,如果需要改变则需要重新赋值。
1 2 3 4 5 6
|
nameList = []
a = [1, 2, 3.14, 'hello', [7,8,9] ]
|
1.2 切片
列表可以用元素索引的方式取出里面的元素; 也可以用切片操作 截取一部分内容生成 新的列表。
列表的 索引和切片操作和 字符串是 类似的。
- 列表切片后得到的结果仍然为 列表。
- 列表切片后得到的是新列表,原来的列表不变。

1 2 3 4 5 6 7
| a = [1, 2, 3.14, 'hello', [7,8,9] ]
print(a[3]) print(a[-1])
print(a[3:]) print(a[-1][:2])
|
1.3 增、删、改
1.3.1 增
- 使用
append
添加值到列表的末尾
1 2 3 4
| list1 = [1,2]
list1.append('你好') print(list1)
|
- 使用
insert()
添加值到指定的位置
insert()
:第一个参数表示 下标 的位置,第二个参数表示 添加的值 。
如果下标设置过大时,则结果和 append 效果一致。
1 2 3 4
| list1 = [1, 2, 3, 4]
list1.insert(2, "你好") print(list1)
|
- 使用
extend()
可以对列表进行拼接如果 extend 的参数是字符串时,则会将字符串拆分为列表然后进行拼接。
1 2 3 4 5 6 7
| list1 = [10, 20 ,30]
list1.extend([40, 50]) print(list1)
list1.extend('abc') print(list1)
|
两个列表合并可以使用+
1 2 3 4
| a = [1, 2, 3] b = [4, 5, 6]
print(a + b)
|
1.3.2 删
- 使用
pop()
删除列表的元素
- pop 方法不加参数时,默认删除最后一位。
- pop 方法加入参数时,则删除指定下标的值。
- pop 方法删除的值可以使用变量进行接收。
1 2 3 4 5 6
| list1 = [10, 20, 30, 40, 50]
list1.pop() list1.pop(1) a=list1.pop() print(list)
|
使用 remove()
根据值进行删除
当有多个相同的值时,remove 方法只删除第一个遇到的值
1 2 3 4
| list1 = [10, 20, 30, 40, 30]
list1.remove(30) print(list1)
|
使用 del
删除列表元素
1 2 3 4
| list1 = [10, 20, 30, 40, 30]
del list1[2] print(list1)
|
1.3.3 改
列表属于可变对象,其内容 可以改变,字符串的内容 不可改变,如果需要改变则需要重新赋值。
1 2 3 4
| list1 = ['a', 33, [10, 20], {'A': 'apple'}, (1, 2)]
list1[2][0] = 'a' print(list1)
|
1.4 列表运算符
列表对 + 和 的操作符与字符串相似。+ 号用于组合列表, 号用于重复列表
Python 表达式 | 结果 | 描述 |
---|
len([1,2,3]) | 3 | 计算元素个数 |
[1,2,3] + [4.5] | [1,2,3,4,5] | 组合 |
[‘Hi!’]*3 | [‘Hi!’,’Hi!’,’Hi!’] | 复制 |
3 in [1,2,3] | True | 元素是否存在于列表中 |
for x in [1,2,3]: print(x) | 1 2 3 | 迭代(遍历) |
1.5 list 函数&方法
函数&方法 | 描述 |
---|
len(list) | 列表元素个数 |
max(list) | 返回最大值 |
min(list) | 返回最小值 |
list(seq) | 将元组转换为列表 |
list.append(obj) | 在列表末尾添加新元素 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值 |
list.insert(index, obj) | 在列表指定位置插入新元素 |
list.remove(obj) | 从列表中移除第一个指定的值 |
list.pop([index]) | 移除列表末尾(或指定位置)的元素,并返回该元素 |
list.sort([cmp[, key[, reverse]]]) | 对原列表进行排序 |
list.reverse() | 反向列表中元素 |
list.count() | 统计某个元素在列表中出现的次数 |
list.index(obj) | 返回某个元素在列表中的位置 |
1.5.1 排序
list.sort()
方法只能用在列表中;sorted()
方法可以用在所有可迭代序列中;
临时排序
sorted()
方法不会改变原列表,会返回一个 新列表,新列表会以 从小到大 的顺序排列。
1 2 3
| list1 = [34,6,-1,90,102,87,99]
print(sorted(list1))
|
永久排序
sort()
方法改变的是原列表,原列表改变后不可逆。
1 2 3 4
| list1 = [34,6,-1,90,102,87,99]
list1.sort() print(list1)
|
倒序
1 2 3 4
| list1=[-1, 6, 34, 87, 90, 99, 102]
list1.sotr(reverse = True) print(list1)
|
1 2 3
| list1=[-1, 6, 34, 87, 90, 99, 102]
print(list1[::-1])
|
2. 元组(Tupl)
2.1 定义
元组和列表非常相似,是 不可变 对象,可以存放 任何类型 的数据,它不能进行 增、删、改 操作。
用圆括号()
来表示元组。
- 元组中只有一个元素,必须要在后面加上逗号
,
. - 定义元组还可以去掉圆括号
1 2 3 4 5 6 7
| a = (1, ) a = 1, a = 1, 2, 3.14, 'hello'
a = (1)
|
2.2 切片
元组的 索引和切片操作和 列表、字符串是 类似的。
1 2 3 4
| a = (1, 2, 3.14, 'hello', [7,8,9])
print(a[0:3]) print(a[-1][:2])
|
元组对象的内容是 不可以变化的,但是元组中的列表的内容却是可以改变的.
1 2 3 4
| a = (1, 2, 3.14, 'hello', [7,8,9])
a[-1][0] = '你好' print(a)
|
2.3 判断元素是否在元组或列表中
使用 in
或 not in
判断元素是否在列表或元组中
1 2 3 4
| tuple1=(10,20,30,40,50)
print(10 in tuple1) print(60 not in tuple1)
|
2.4 多个变量同时赋值
1 2 3 4 5
| x,y = (1,2) print(x,y)
name, age = ['李逵', 33] print(name,age)
|
2.5 tuple 运算符
Python 表达式 | 结果 | 描述 |
---|
len((1,2,3)) | 3 | 返回元组的长度 |
(1,2,3) + (4,5,6) | (1,2,3,4,5,6) | 连接两个元组 |
(‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 重复元组 |
3 in (1,2,3) | True | 判断元素是否在元组中 |
for x in (1,2,3): print(x) | 1 2 3 | 遍历元组 |
2.6 元组内置函数
方法 | 描述 |
---|
len(tuple) | 返回元组中的元素个数 |
max(tuple) | 返回元组中的最大值 |
min(tuple) | 返回元组中的最小值 |
tuple(seq) | 将序列转换为元组 |