(三)、组合数据类型

在Python中,组合数据类型包括以下四种:

  1. 列表(List):列表是一种可变序列,它包含有序的元素,可以通过下标访问、添加、删除等操作。可以存储任意类型的对象,使用方括号 [] 定义,元素之间用逗号隔开。

  2. 元组(Tuple):元组是一种不可变序列,与列表相似,但定义后不可修改,通常用于存储多个值,在 Python 中也可以返回多个值,使用小括号 () 定义,元素之间用逗号隔开。

  3. 字典(Dictionary):字典是一种键-值对的映射,用于存储具有映射关系的数据,键和值之间用冒号 : 隔开,多个键值对之间用逗号隔开,使用花括号 {} 定义。

  4. 集合(Set):集合是一种无序、不重复的数据类型,用于存储非重复元素的集合,支持交、并、差等集合运算,使用花括号 {} 或 set() 构造函数来定义。

它们可以完成很多常见的数据处理、数据结构和算法等任务。同时,他们之间可以嵌套使用,以达到多种使用目的。

(字符串也可以视作一种数据类型)

在前文中,我们讲解过字符串的处理的一些知识,相应的,在组合数据类型中,有很多是可以进行通用的,例如元素的访问、切片,数据长度的提取等,很多是可以举一反三的,由于篇幅的原因,不再进行逐一归类。

一、列表

在 Python 中,列表是一种用于存储有序元素集合的数据类型,其基本形式是用方括号 [ ] 包围,并且每个元素之间用逗号分隔。拥有以下特点:

其中的元素可以是任何数据类型,例如整数、浮点数、字符串、布尔值等等,也可以包含其他的列表。

列表是可变的,这意味着可以通过索引对其进行修改、添加或删除元素。

如果要访问列表中的元素,可以使用索引来获取元素,索引从零开始,和字符串类似。

可以使用切片来提取子列表,和字符串类似,

列表有很多内置方法,例如 append()、insert()、remove()、sort() 等等,可以用于操作列表。

1.列表的创建

你可以使用以下方式创建一个列表:

# 创建一个空列表
list = []
# 创建一个整数列表
my_list = [1, 2, 3, 4, 5]
# 创建一个混合类型(包含整数、浮点数、字符串)的列表
your_list = [1, 2.0, 'hello', 4]

2.列表的形式

列表既可以是单独使用的一个数据类型,也可以和其他数据类型、列表本身相嵌套使用

列表嵌套列表:

[[1, 2, 3], ['a', 'b', 'c']]

列表嵌套元组、字典、组合:

[(1, 2, 3), ('a', 'b', 'c')]

[{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]

[{1, 2, 3}, {2, 3, 4}]

 列表里也可以进行不同种数据类型的嵌套

[[1, 2, 3],("a", "b", "c"),{"name": "Alice", "age": 30}]

3.对列表中的元素进行索引和访问

在Python语言中,列表中的每个元素都有其相应的位置编号,类似于字符串,列表的位置编号从0开始,最后一位的编号为列表的长度减一,也可以为-1,列表的长度可以用len()函数获取,

my_list = [10, 20, 30, 40, 50]
print(my_list[0])    # 访问第一个元素,输出: 10
print(my_list[2])    # 访问第三个元素,输出: 30
print(my_list[-1])   # 访问最后一个元素,输出: 50

列表除了可以根据位置编号直接访问元素之外,还可以进行“切片”访问一系列元素,语法为 a[start:stop],其中 start 和 stop 都是可选参数,表示开始和结束位置。如果省略 start,则默认从列表开头开始切片;如果省略 stop,则默认切到列表末尾,更具体的,参考字符串部分的切片访问方法——程序设计基础

my_list = [10, 20, 30, 40, 50]
print(my_list[1:4])    # 输出: [20, 30, 40]

4.对列表中的元素进行操作、处理

列表中的元素是有序存放的,同时也是一种可变的数据类型,那么意味着我们可以增、删、改、替列表中的任意一项或几项元素,当然其中元素的个数也是可变的。

(1)、元素的修改

我们可以直接通过索引来更改列表中的元素

my_list = [10, 20, 30, 60]
my_list[1] = 25  # 将索引为1的元素从20修改为25
my_list[-1] = 30  # 将索引为-1的元素从60修改为30
print(my_list)  # 输出: [10, 25, 30, 30]

(2)、元素的增加

 我们对列表中元素进行添加有两种方式,一种是append()方法,另一种是insert()方法

  1. append()  方法向列表末尾添加一个元素
  2. insert()      方法在列表的任何位置插入一个元素

append()方法用法为:列表名.append(新元素)

insert()的用法为:       列表名.insert(索引,新元素)

my_list = [10, 20, 30]
my_list.append(40)     # 在末尾添加一个元素
print(my_list)         # 输出: [10, 20, 30, 40]

my_list.insert(1, 15)  # 在索引为1的位置插入一个元素
print(my_list)         # 输出: [10, 15, 20, 30, 40]

 (3)、元素的删除

如果需要对一个列表中的元素进行删除,我们有三种基础的处理方式,即del、remove()、pop()

  1. remove() 方法删除列表中指定的元素
  2. pop() 方法删除并返回指定索引的元素
  3. del 语句删除指定位置的元素

 del的使用方法为:          del 列表名[索引]

remove()的使用方法为: 列表名.remove(元素值)

pop()的使用方法为:        列表名.pop(索引)

my_list = [10, 20, 30, 40]
my_list.remove(20)     # 删除值为20的元素
print(my_list)         # 输出: [10, 30, 40]

popped_elem = my_list.pop(1)  # 删除索引为1的元素,并返回该元素
print(popped_elem)     # 输出: 30
print(my_list)         # 输出: [10, 40]

del my_list[0]         # 删除索引为0的元素
print(my_list)         # 输出: [40]

注:

  1. 在使用pop方法时,如若未给出索引,则默认删除列表的结尾元素
  2. 在使用remove方法时,如果在列表中存在两个相同的元素与需要被删除的元素一样,那么使用remove方法,只会删去排在前面的,即索引值较小的元素例如
my_list = ['apple', 'banana', 'orange', 'pear']
popped_elem = my_list.pop()     # 删除最后一个元素
print(popped_elem)              # 输出: 'pear'
print(my_list)                  # 输出: ['apple', 'banana', 'orange']
my_list=[10,20,30,40,30,50,60]
my_list.remove(30)
print(my_list)        #输出[10, 20, 40, 30, 50, 60]

值得注意的是,在列表使用中,我们在有些情况下会将一个列表复制到另一个变量名,并对这个新的列表进行一些操作。此时,我们就要注意了:

如果:

a=[1,2,3,4,5]
b=a
b.remove(1)
print(a)
print(b)
#此时a、b的值均为[2,3,4,5]

 直接将a列表赋值给b变量,那么在对b变量进行操作时,原列表也会受到影响而产生变动,此时,我们要采用copy()来复制这个列表,即:

a=[1,2,3,4,5]
b=a.copy()
b.remove(1)
print(a)
print(b)
#输出结果为:
#[1, 2, 3, 4, 5]
#[2, 3, 4, 5]

同时,需要注意的是,在进行诸如remove()这种操作时,以下这个表达式是错误的

b=b.remove(1)
print(b)
#输出结果为None

即:并非返回一个列表,而只是修改原来的列表,所以如果用“=”输出的话,返回是None 。
去掉返回值即可得到新的列表!

二、元组

三、字典

四、集合

(未完待续)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值