字符串对象具有sequence特性。
列表(list)和元组(tuple)也是具有sequence特性的。
列表对象经常用来存储其他任何类型的数据对象。
注意:是任何类型的对象、整数、小数、字符串、函数等等都可以。也可以存储另外一个列表对象。
列表的定义
定义一个空列表,赋值给一个变量:
nameList = []
如果定义列表的时候,里面就存放了一些数据对象,只需要填写到方括号中就可以了。
a = [1, 2, 3.14, 'hello']
这个列表中包含了多种类型的对象:整数、小数和字符串。
列表中的每个对象,称之为列表的一个元素。
列表的sequence操作。
列表也是有sequence特性的,当然也支持sequence操作。
切片。
改变列表的内容:
a[0] = 'chang'
可以看到列表a的第一个元素值发生了变化。
这个也叫索引赋值。
另外还有切片赋值的应用场景。
切片赋值甚至支持替换的元素比被替换的元素多的场景。
(切片地去改,迭代地进行更改。)
合并两个列表:直接使用加号+。
列表是一种内容可改变的对象。
列表重要的是增删改查,其他有len()、sort()等的公共方法:
方法 | 说明 |
L.Append(item) | 在列表结尾增加一个元素item |
L.insert(I, x) | 在I索引位置插入一个值x |
L.extend([5, 6, 7]) | 在列表迭代增加一些值 |
L.pop() | 按索引删除列表的元素,default last |
L.remove(2) | 按值删除列表的元组,删除的第一次出现的值 |
L.clear() | 清空列表 |
del L | 删除L列表 |
del L[2:] | 切片删除列表中的元素 |
L[1]=value | 索引赋值 |
L[i:j]=[] | 切片地去改,迭代地进行更改 |
L[i:j]=[4,5,6] | 切片地去改,迭代地进行更改 |
for x in L: print(x) | 迭代 |
3 in L | 成员关系 |
L * 3 | 重复 |
L1 + L2 | 合并 |
len(L) | 列表长度 |
L = list('spam') | 可迭代项目的列表 |
L[i:j] | 求切片 |
L.count(item) | 求元素出现的次数 |
L.index(value) | 返回第一个值的索引 |
L.sort() | 列表的正向排序 |
L.sort(reverse=True) | 列表的反向排序 |
L.reverse() | 列表的反转 |
题目1:打印嵌套的子列表。
- L = [1, 2, 3, ['Alice', 'Alex', 'Tonny'], 5, 6, ['Java', 'Python', 'C'], 8]
-
- for i in range(len(L)):
- if type(L[i]) == list:
- for j in L[i]:
- print(j)
- else:
- print(i + 1)
结果:
- C:\CodeProjects\PythonProjects\s9\venv\Scripts\python.exe C:\CodeProjects\PythonProjects\s9\day2\01homework.py
- 1
- 2
- 3
- Alice
- Alex
- Tonny
- 5
- 6
- Java
- Python
- C
- 8
代码中type(L[i])) == list。
这个语句的判断。这种使用方法可以记住。
2023年10月13日:
函数也是一种数据对象。
append方法:
- a = [1, 2, 3.14, 'hello']
-
- a.append('你好')
-
- print(a)
-
- a.append([7, 8])
-
- print(a)
需要注意的是,append方法的返回值是None,而不是新的列表对象。
insert方法:
如果我们不是在列表的后面添加一个元素,而是在指定的位置插入一个元素,我们就可以使用insert方法。
insert方法的返回值也是None。
- a = [1, 2, 3]
-
- a.insert(0, 'b')
-
- print(a)
pop方法:
从列表中取出并删除一个元素,就可以使用pop方法。
该方法的参数就是要取出元素的索引。
取出后,该元素就从该列表中删除了。pop也经常用来删除某个元素。
- a = [1, 2, 3.14, 'hello']
-
- a.pop(3)
-
- print(a)
有取出的意思,取出,那也就从列表中删除了。
没有看到pop有弹出、取出的意思。有流行音乐、突然、砰地的意思。
pop方法的返回值是提取出来的元素。
remove方法:
remove方法也是删除元素的方法。
remove方法的参数,就是要删除元素的值。pop方法的参数是要删除元素的索引。
理解:
remove从第1个元素开始,寻找与参数对象相等的元素,如果找到了就删除。
找到后,不会继续往后再寻找其他相等的元素。
也就是说remove最多只删除一个元素。
- var1 = ['a', 'b', 'c', 'a']
-
- var1.remove('a')
-
- print(var1)
第一个元素‘a’,被删除掉了。
删除元素的时候,如果即知道位置,也知道值,那么根据位置索引进行删除是比较好的,效率高。
但是如果按值,还需要最比对,才能被删除。
除非不知道位置在哪儿,就只能用remove来进行删除。
reverse方法:
reverse方法是把列表元素倒过来。