Python复习系列:Python基础知识(二)

Python基础知识(二)

3. python序列结构

Python序列属于容器类结构,用于包含大量数据,类似于其它语言中的数组,但提供了更加强大的功能。

在这里插入图片描述

3.1 列表

列表(list)是最重要的Python内置对象之一,是包含若干元素的有序连续内存空间。在形式上,列表的所有元素放在一对方括号[]中,相邻元素之间使用逗号分隔。在Python中,同一个列表中元素的数据类型可以各不相同,可以同时包含整数、实数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合、函数以及其他任意对象。如果只有一对方括号而没有任何元素则表示空列表。

[10, 20, 30, 40]

['crunchy frog', 'ram bladder', 'lark vomit']

['spam', 2.0, 5, [10, 20]]

[['file1', 200,7], ['file2', 260,9]]

[{
   
   3}, {
   
   5:6}, (1, 2, 3)]
3.1.1 列表的创建和删除

使用“=”直接将一个列表赋值给变量即可创建列表对象。

a_list = ['a', 'b', 'mpilgrim', 'z', 'example']

a_list = []            

也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表。

print(list((3, 5, 7, 9, 11)) )                     # 将元组转换为列表	[3, 5, 7, 9, 11]

print(list(range(1, 10, 2)))                       # 将range对象转换为列表	[1, 3, 5, 7, 9]

print(list('hello world'))        # 将字符串转换为列表 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

print(list({
   
   3, 7, 5}))                             # 将集合转换为列表 [3, 5, 7]

print(list({
   
   'a': 3, 'b': 9, 'c': 78}) )            # 将字典的“键”转换为列表 ['a', 'b', 'c']

print(list({
   
   'a': 3, 'b': 9, 'c': 78}.items()))     # 将字典的“键:值”对转换为列表 [('a', 3), ('b', 9), ('c', 78)]

x = list()                                         # 创建空列表 []
print(x)

当一个列表不再使用时,可以使用del命令将其删除。

>>> x = [1, 2, 3]
>>> del x                      #删除列表对象
>>> x                          #对象删除后无法再访问,抛出异常 NameError: name 'x' is not defined
3.1.2 列表元素的访问

创建列表之后,可以使用整数作为下标来访问其中的元素,其中0表示第1个元素,1表示第2个元素,2表示第3个元素,以此类推;列表还支持使用负整数作为下标,其中-1表示最后1个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。

>>> x = list('Python')       #创建类别对象

>>> x

['P', 'y', 't', 'h', 'o', 'n']

>>> x[0]              #下标为0的元素,第一个元素

'P'

>>> x[-1]             #下标为-1的元素,最后一个元素

'n'
3.1.3 列表的常用方法

在这里插入图片描述

(1)append()、insert()、extend()

append()用于向列表尾部追加一个元素,insert()用于向列表任意指定位置插入一个元素,extend()用于将另一个列表中的所有元素追加至当前列表的尾部。

>>> x = [1, 2, 3]

>>> x.append(4)           #在尾部追加元素

>>> x.insert(0, 0)         #在指定位置插入元素

>>> x.extend([5, 6, 7])       #在尾部追加多个元素

>>> x

[0, 1, 2, 3, 4, 5, 6, 7]

(2)pop()、remove()

pop()用于删除并返回指定位置(默认是最后一个)上的元素;remove()用于删除列表中第一个值与指定值相等的元素。

另外,还可以使用del命令删除列表中指定位置的元素。

>>> x = [1, 2, 3, 4, 5, 6, 7]

>>> x.pop()            #弹出并返回尾部元素

7

>>> x.pop(0)            #弹出并返回指定位置的元素

1

>>> x = [1, 2, 1, 1, 2]

>>> x.remove(2)          #删除首个值为2的元素

>>> del x[3]            #删除指定位置上的元素

>>> x

[1, 1, 1]

(3)count()、index()

列表方法count()用于返回列表中指定元素出现的次数;index()用于返回指定元素在列表中首次出现的位置,如果该元素不在列表中则抛出异常。

>>> x = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

>>> x.count(3)           #元素3在列表x中的出现次数

3

>>> x.count(5)           #不存在,返回0

0

>>> x.index(2)           #元素2在列表x中首次出现的索引

1

>>> x.index(5)           #列表x中没有5,抛出异常

ValueError: 5 is not in list

(4)sort()、reverse()

列表对象的sort()方法用于按照指定的规则对所有元素进行排序;reverse()方法用于将列表所有元素逆序或翻转。

>>> x = list(range(11))            #包含11个整数的列表

>>> import random

>>> random.shuffle(x)             #把列表x中的元素随机乱序

>>> x

[6, 0, 1, 7, 4, 3, 2, 8, 5, 10, 9]

>>> x.sort(key=lambda item:len(str(item)), reverse=True) #按转换成字符串以后的长度,降序排列

>>> x

[10, 6, 0, 1, 7, 4, 3, 2, 8, 5, 9]

>>> x.sort(key=str)              #按转换为字符串后的大小,升序排序

>>> x

[0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9]

>>> x.sort()                 #按默认规则排序

>>> x

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> x.reverse()                #把所有元素翻转或逆序

>>> x

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
列表对象支持的运算符

加法运算符+也可以实现列表增加元素的目的,但不属于原地操作,而是返回新列表,涉及大量元素的复制,效率非常低。使用复合赋值运算符+=实现列表追加元素时属于原地操作,与append()方法一样高效。

>>> x = [1, 2, 3]

>>> id(x)

53868168

>>> x = x + [4]            #连接两个列表

>>> x

[1, 2, 3, 4]

>>> id(x)               #内存地址发生改变

53875720

>>> x += [5]              #为列表追加元素

>>> x

[1, 2, 3, 4, 5]

>>> id(x)               #内存地址不变

53875720

乘法运算符可以用于列表和整数相乘,表示序列重复,返回新列表。运算符*=也可以用于列表元素重复,属于原地操作。

>>> x = [1, 2, 3, 4]

>>> id(x)

54497224

>>> x = x * 2              #元素重复,返回新列表

>>> x

[1, 2, 3, 4, 1, 2, 3, 4]

>>> id(x)                #地址发生改变

54603912

>>> x *= 2               #元素重复,原地进行

>>> x

[1, 2, 3, 4, 1, 2, 3, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小张的日常笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值