python学习笔记之列表和元组。
List
序列是Python中最基本的数据结构,列表是一种序列。列表是python的一种内置的数据类型,是一种容器类,list是一种任意对象的有序集合,通过索引访问其中的元素,可以随时添加和删除其中的元素,可以任意嵌套(元素可以是另一个列表或元组等)的一种异构类型(各个元素类型可不同),所以是一种可变对象。
序列都可以进行的操作包括索引,切片,加,乘,检查成员,此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
创建一个列表,只要把逗号分隔的不同的各个元素用中括号括起来即可。
1 2 3 4
| list1 = [1,2,3,4,5] list2 = ['Neal','Tom','Cora'] list3 = ['Neal','Hello',30] list4 = ['a',[1,2,3],'b']
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| list2 ['Neal', 'Tom', 'Cora'] list2[0] 'Neal' list2[2] 'Cora' list2[3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-10-3737e39fc5b9> in <module>() ----> 1 list2[3]
IndexError: list index out of range
|
1 2 3 4 5
| list3 ['Neal', 'Hello', 30] list3[2] = 40 list3 ['Neal', 'Hello', 40]
|
1 2 3 4 5 6 7 8 9
| list2 ['Neal', 'Tom', 'Cora'] del list2[0] list2 ['Tom', 'Cora'] list2.pop(1) 'Cora' list2 ['Tom']
|
1 2 3 4 5 6 7 8
| list3 ['Neal', 'Hello', 30] list3.insert(1,'Tome') list3 ['Neal', 'Tome', 'Hello', 30] list3.append(100) list3 ['Neal', 'Tome', 'Hello', 30, 100]
|
1 2 3 4 5 6 7 8 9 10 11 12
| list1 [1, 2, 3, 4, 5] list1[0:] [1, 2, 3, 4, 5] list1[1:3] [2, 3] list1[-1] 5 list1[-4:-1] [2, 3, 4] list1 [1, 2, 3, 4, 5]
|
列表可以进行+、*运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| list1 [1, 2, 3, 4, 5] list2 ['Tom'] list1 + list2 [1, 2, 3, 4, 5, 'Tom'] list22 = list2 * 4 print(list22) ['Tom', 'Tom', 'Tom', 'Tom'] id(list22[0]) 140193645244688 id(list22[1]) 140193645244688 id(list22[2]) 140193645244688
|
1 2 3 4 5 6
| list1 [1, 2, 3, 4, 5] 2 in list1 True 10 in list1 False
|
- 函数
1 2 3 4 5 6 7 8
| list1 [1, 2, 3, 4, 5] len(list1) 5 max(list1) 5 min(list1) 1
|
2.方法
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 28 29 30 31 32 33
| list1 [1, 2, 3, 4, 5] list11 = ['a','b'] list1.append(list11) list1 [1, 2, 3, 4, 5, ['a', 'b']] list1.extend(list11) list1 [1, 2, 3, 4, 5, ['a', 'b'], 'a', 'b'] list1.sort()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-83-05e4223c8627> in <module>() ----> 1 list1.sort()
TypeError: unorderable types: list() < int()
list1 = [2,6,1,6,3] list1.sort() list1 [1, 2, 3, 6, 6] list1.reverse() list1 [6, 6, 3, 2, 1]
|
Tuple
元组与list类似,是任意对象的有序集合,通过索引访问其中的元素,元素支持异构,但一旦元组创建后,里面的元素不可更改,是不可变对象,即没有像list那样有append()这样类似的方法来对元组进行修改。
元组的定义与列表几乎一样,只是把列表的[]改为()
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| tuple1 = (3,5,8,2) tuple1 (3, 5, 8, 2) tuple2 = 6,7,8,'Tom' tuple2 (6, 7, 8, 'Tom') tuple3 = ('one',) tuple3 ('one',) tuple4 = ('one') tuple4 'one' type(tuple4) str
|
1 2 3 4 5 6
| t1 = (22,4,7) t2 = ('a','b','c') t1 + t2 (22, 4, 7, 'a', 'b', 'c') t1 * 3 (22, 4, 7, 22, 4, 7, 22, 4, 7)
|
1 2 3 4 5 6
| t1 (22, 4, 7) 4 in t1 True 9 in t1 False
|
元组本身是一种不可变对象,但它的元素可以是一个可变对象,这样就河以构建成一个看似可以被修改的元组。但元组自身的内存地址是不会发生改变的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| list1 = [1,2,3] t1 = ('a','b',list1) t1 ('a', 'b', [1, 2, 3]) id(t1) 140193645110976 t1[2] [1, 2, 3] t1[2][1] 2 t1[2][2] = 22 t1 ('a', 'b', [1, 2, 22]) id(t1) 140193645110976
|
1 2 3 4 5 6
| t1 ('a', 'b', [1, 2, 22]) t1.count('a') 1 t1.index([1,2,22]) 2
|