python学习之路,基础知识-列表(list)

Python序列数据结构

1、列表(list)

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表(list)是一组有序存储的数据,列表具有如下特性:

  • 和变量一样,每个列表都有一个唯一标识它的名称;
  • 一个列表的元素应具有相同的数据类型;
  • 每个列表元素都有索引和值两个属性,索引是一个从0开始的整数,用于标记元素在列表中的位置;值就是元素对应的值;

1.1 定义列表

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可;

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch','macbook pro'] 

1.2 访问列表

使用下标索引来访问列表中的值,下标从0开始计数;

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 print(product_list[0])
4 print(product_list[0:2])

1.3 列表切片

可是使用切片访问列表中的多个值

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 product_list = ['iphone','ipad','iwatch','macbook pro']
 4 
 5 #打印列表中从索引0开始到索引2的值;
 6 print(product_list[0:2])
 7 #输出结果:['iphone', 'ipad']
 8 #如果是从头开始去,索引0可以忽略,输出结果跟[0:2]一样;
 9 print(product_list[:2])
10 #输出结果:['iphone', 'ipad']
11 #取列表中的最后一个值
12 print(product_list[-1])
13 #输出结果:macbook pro
14 #取下标1至-1的值,不包括-1
15 print(product_list[1:-1])
16 #输出结果:['ipad', 'iwatch']
17 #取第2个开始到最后一个值,包含最后一个值,不能写-1,应该写[1:]
18 print(product_list[1:])
19 #输出结果:['ipad', 'iwatch', 'macbook pro']
20 #取列表的值,每隔2个取一个值的写法[::2]
21 print(product_list[::2])
22 #输出结果:['iphone', 'iwatch']
23 
24 #注:列表切片的特性:顾头不顾尾,从左往右取,包含开头,不包含结尾的值;

1.4 列表其他函数应用

1.4.1 获取列表长度

列表长度指列表中元素的数量,可以通过len()函数获取列表的长度,方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch','macbook pro']
4 print(len(product_list))
5 #输出结果:4
1.4.2 列表追加元素

往列表中追加元素,可以使用append()函数往列表中追加新元素,方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch','macbook pro']
4 product_list.append('itv')
5 print(product_list)
6 #输出结果:['iphone', 'ipad', 'iwatch', 'macbook pro', 'itv']
1.4.3 列表插入元素

往列表中插入元素,可以使用insert()函数往列表中的某个位置插入新元素,方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch','macbook pro']
4 product_list.insert(1,'iphone100')
5 print(product_list)
6 #输出结果:['iphone', 'iphone100', 'ipad', 'iwatch', 'macbook pro']
1.4.4 列表删除元素

列表删除元素的方法有三种:

del  list[index] ;

list.remove('要删除的列表元素值')

list.pop('要删除的列表索引号'):当列表索引号为空时,默认删除最后一个

三种方法示例:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 
 4 product_list = ['iphone','ipad','iwatch','macbook pro']
 5 
 6 #第一种删除方法:
 7 
 8 del product_list[0]
 9 print(product_list)
10 #输出结果:['ipad', 'iwatch', 'macbook pro']
11 
12 #第二中删除方法:
13 product_list.remove('iphone')
14 print(product_list)
15 #输出结果:['ipad', 'iwatch', 'macbook pro']
16 
17 #第三种删除方法:
18 product_list.pop()   #list.pop(),当索引值为空时,默认值为-1,删除最后一个列表元素;
19 print(product_list)
20 #输出结果:['iphone','ipad','iwatch']
21 
22 product_list.pop(2)  #当指定索引时,删除指定索引
23 print(product_list)
24 #输出结果为:['iphone', 'ipad', 'macbook pro']
1.4.5 列表扩展

可以通过extend()函数将一个列表中的每个元素分别添加到另外一个列表中,具体使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch','macbook pro']
4 
5 menu_list = [1,2,3,4,5,6,7,8]
6 
7 product_list.extend(menu_list)
8 print(product_list)
9 #输出结果:['iphone', 'ipad', 'iwatch', 'macbook pro', 1, 2, 3, 4, 5, 6, 7, 8]
1.4.6 列表复制

可以使用copy()函数对列表进行复制,具体使用方法如下:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 
 4 #浅copy
 5 
 6 product_list = ['iphone','ipad','iwatch','macbook pro']
 7 
 8 memu_list = product_list.copy()  #浅copy,当列表只有一层,未再嵌套列表时,为完全复制列表;等同于调用copy模块时使用的copy.copy()
 9 print(product_list)
10 print(memu_list)
11 
12 #输出结果:
13 ['iphone', 'ipad', 'iwatch', 'macbook pro']
14 ['iphone', 'ipad', 'iwatch', 'macbook pro']
15 
16 #调用copy模块效果:
17 import copy
18 memu_list = copy.copy(product_list)
19 print(product_list)
20 print(memu_list)
21 
22 #输出结果:
23 ['iphone', 'ipad', 'iwatch', 'macbook pro']
24 ['iphone', 'ipad', 'iwatch', 'macbook pro']
25 
26 #当列表中嵌套列表时,浅copy的效果只会copy第一层列表:
27 product_list = ['iphone','ipad','iwatch',['华为','小米'],'macbook pro']
28 
29 memu_list = product_list.copy()  #浅copy,当列表只有一层,未再嵌套列表时,为完全复制列表;等同于调用copy模块时使用的copy.copy()
30 print(product_list)
31 print(memu_list)
32 #输出结果
33 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']
34 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']
35 修改列表
36 product_list[1] = '苹果'  #修改product_list列表的第2个值
37 product_list[3][1] = '诺基亚'  #修改product_list列表中嵌套的列表的第2个值
38 print(product_list)
39 print(memu_list)
40 #输出结果:
41 ['iphone', '苹果', 'iwatch', ['华为', '诺基亚'], 'macbook pro']
42 ['iphone', 'ipad', 'iwatch', ['华为', '诺基亚'], 'macbook pro']
43 
44 #深copy,需要调用copy模块,方法:copy.deepcopy()
45 import copy
46 memu_list = copy.deepcopy(product_list)  #深copy,在内存中另外建了一块地址,用于存储menu_list
47 print(product_list) 
48 print(memu_list)
49 #输出结果:
50 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']
51 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']
52 product_list[1] = '苹果'
53 product_list[3][1] = '诺基亚'
54 print(product_list)
55 print(memu_list)
56 #输出结果:
57 ['iphone', '苹果', 'iwatch', ['华为', '诺基亚'], 'macbook pro']
58 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']
 1.4.7 列表的统计

可以使用count()函数统计列表中某个元素的个数,具体使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['iphone','ipad','iwatch',['华为','小米'],'macbook pro','iphone']
4 
5 print(product_list.count('iphone'))
6 #输出结果
7 2
1.4.8 列表的排序

列表排序操作值按列表元素值的升序、降序、反序重新排列列表元素的位置。

sort()函数:对列表进行升序排列,其使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']
4 
5 product_list.sort()
6 print(product_list)
7 
8 #输出结果
9 ['apple', 'huawei', 'lianxiang', 'nuojiya', 'oppo', 'vivo', 'xiaomi']

reverse()函数:对列表进行反序排列,其使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']
4 
5 product_list.reverse()
6 print(product_list)
7 
8 #输出结果:
9 ['oppo', 'vivo', 'nuojiya', 'lianxiang', 'huawei', 'xiaomi', 'apple']

可以使用sort()和reverse()函数结果使用,对列表进行降序排列,使用方法如下:

#!/usr/bin/env  python
# -*- coding:utf-8 -*-
product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']
product_list.sort()
product_list.reverse()
print(product_list)

#输出结果为:
['xiaomi', 'vivo', 'oppo', 'nuojiya', 'lianxiang', 'huawei', 'apple']
1.4.9 定位列表元素(获取列表元素下表)

可以使用index()函数来获取列表中某个元素的索引号,其使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo','apple','huawei']
4 print(product_list.index('apple'))#当列表中有重复的值时,只获取第一个元素的下标;
5 
6 #输出结果:
7 0
1.4.10 遍历列表元素

编列列表元素的方法为使用for 循环,具体使用方法如下:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']
 4 for  i  in range(len(product_list)):
 5     print(product_list[i])
 6 
 7 #输出结果:
 8 apple
 9 xiaomi
10 huawei
11 lianxiang
12 nuojiya
13 vivo
14 oppo

也可以使用enumerate()函数编列列表的索引和元素,具体使用方法如下:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']
 4 for index,item in enumerate(product_list):
 5     print(index,item)
 6 #输出结果:
 7 0 apple
 8 1 xiaomi
 9 2 huawei
10 3 lianxiang
11 4 nuojiya
12 5 vivo
13 6 oppo

 2、元组(tuple)

元组(tuple)与列表非常相似,它具有以下特性:

  • 一经定义,元组的内容不能修改(也叫只读列表);
  • 元组元素可以存储不同类型的数据,可以是字符串、数字、甚至是元组;
  • 元组元素由圆括号括起来;

2.1、元组的定义

定义一个元组的方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 t = ('iphone','ipad','macbook pro','itv')
4 print(t)

2.2、访问元组元素

与列表一样,可以使用索引访问元组元素,使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 t = ('iphone','ipad','macbook pro','itv')
4 print(t[0])
5 #输出结果:iphone

2.3、元组切片

与列表一样,列表的切片方法同样适用于元组,使用方法如下:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 t = ('iphone','ipad','macbook pro','itv')
 4 print(t[0])
 5 print(t[0:])
 6 print(t[-1])
 7 print(t[1:3])
 8 #输出结果:
 9 iphone
10 ('iphone', 'ipad', 'macbook pro', 'itv')
11 itv
12 ('ipad', 'macbook pro')

2.4、获取元组长度

元组长度指元组中元素的数量,可以通过len()函数获取元组的长度,使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 t = ('iphone','ipad','macbook pro','itv')
4 print(len(t))
5 #输出结果:4

2.5、定位元组元素位置

与列表一样,定位元组元素位置可以使用index()函数,使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 
4 t = ('iphone','ipad','macbook pro','itv')
5 print(t.index('iphone'))
6 #输出结果:0

2.6、统计元组中某个元素的个数

与列表一样,统计元组中某个元素的个数使用count()函数,使用方法如下:

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')
4 print(t.count('iphone'))
5 #输出结果为:3

2.7、遍历元组元素

与列表一样,可以使用for循环遍历元组元素,使用方法如下:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 使用for循环遍历
 4 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')
 5 for i in range(len(t)):
 6     print(t[i])
 7 
 8 #输出结果:
 9 iphone
10 ipad
11 macbook pro
12 itv
13 iphone
14 iphone
15 
16 使用enumrate()函数编列元组的索引和值:
17 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')
18 for index,item in enumerate(t):
19     print(index,item)
20 
21 #输出结果:
22 0 iphone
23 1 ipad
24 2 macbook pro
25 3 itv
26 4 iphone
27 5 iphone

2.8、元组和列表的转换

元组和列表的转换可以使用list()函数和tuple()函数,使用方法如下:

元组转列表:

 

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')
4 print(list(t))
5 #输出结果:
6 ['iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone']

 

列表转元组:

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')
 4 l = list(t)
 5 
 6 print(l)
 7 #输出结果:
 8 ['iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone']
 9 
10 print(tuple(l))
11 #输出结果:
12 ('iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone')

 

 

 

 

转载于:https://www.cnblogs.com/benet/p/6390990.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值