Python第二周总结:常用数据结构

本文总结了Python中常用的数据结构,包括列表、元组、字符串、集合和字典。详细介绍了它们的定义、创建、运算、遍历以及各种方法。列表作为可变数据类型,支持多种操作;元组是不可变的,常用于打包和解包;字符串是不可变序列,支持比较和成员运算;集合具有无序和互异性,适用于成员运算和集合运算;字典作为键值对存储,适合处理复杂数据结构。
摘要由CSDN通过智能技术生成

Python第二周总结:常用数据结构

列表

列表的定义

列表是由一系元素按特定顺序构成的数据序列,这样就意味着定义一个列表类型的变量,可以保存多个数据,而且允许有重复的数据

列表是容器型数据类型(用一个变量可以保存多个数据),是可变数据类型

​ 列表用[]来定义,列表的数据项不需要具有相同的类型:

list1 = [35, 12, 97, 55, 68, 73, 49, 92, 20]
list2 = ['210502', '悾格', True, 20, '1999-12-31']
list3 = ['A', 'a', 'B', 'b', 'C']

# 查看变量的数据类型
print(type(list2))		# <class 'list'>
print(type(list2[1]))	# <class 'str'>
print(type(list2[2]))	# <class 'bool'>
print(type(list2[3]))	# <class 'int'>
列表的创建

​ 创建列表可以从三个方面来创建:

1. 字面量语法
2. 构造器语法
 - 通过Python内置的`list`函数将其他序列变成列表。准确的说,`list`并不是一个函数,而是创建列表对象的构造器
3. 生成式(推导式)语法
# 创建列表
# 方式一:字面量语法
list1 = ['apple', 'orange', 'pitaya', 'durian']
print(list1)        # ['apple', 'orange', 'pitaya', 'durian']
# 方式二:构造器语法
list2 = list(range(1, 10))  # 创建一个1-9的列表
print(list2)        # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 方式三:生成式(推导式)语法
list3 = [i ** 2 for i in range(1, 10)]  # 创建一个1-9平方的列表
print(list3)        # [1, 4, 9, 16, 25, 36, 49, 64, 81]
列表的运算
# 定义2个列表
list1 = [76, 83, 91, 97]
list2 = [61, 26]

# 列表的拼接(赋值给原有的列表并更新该列表或赋值给新的列表)
list3 = list1 + list2
print(list3)        # [76, 83, 91, 97, 61, 26]

# 列表的重复
list4 = ['Hi'] * 3
print(list4)        # ['Hi', 'Hi', 'Hi']

# 列表的成员运算(查看某个元素是否存在于该列表)
print(100 in list3)             # False
print('Hello' not in list4)     # True

# 获取列表的长度(元素个数)
print(len(list3))               # 6

# 列表的索引
print(list3[0], list3[-6])      # 76 76
# 同时可以通过索引来改变指定下标元素的值
list3[5] = 100                  # 修改下标为5的元素的值
print(list3)					# [76, 83, 91, 97, 61, 100]

'''
列表的切片(格式:list3[start:end:step])
start:列表切片初识位置,默认为0
end:列表切片终止位置,默认为列表的最后元素下标
step:步长,切片元素截取的间隔长度,值为负数时,反向切片
'''
print(list3[:5])            # [76, 83, 91, 97, 61]
print(list3[4:])            # [61, 100]
print(list3[-3:-6:-1])      # [97, 91, 83]
print(list3[::-2])          # [100, 97, 83]

# 列表的比较运算
list5 = [1, 2, 3, 4]
list6 = list(range(1, 5))
# 两个列表比较相等性比的是对应索引位置上的元素是否相等
print(list5 == list6)       # True
list7 = [3, 2, 1]
# 两个列表比较大小比的是对应索引位置上的元素的大小
print(list5 <= list7)       # True

由于列表是可变类型,所以通过索引操作既可以获取列表中的元素,也可以更新列表中的元素。对列表做索引操作一样要注意索引越界的问题,对于有N个元素的列表,正向索引的范围是0N-1,负向索引的范围是-1-N,如果超出这个范围,将引发IndexError异常,错误信息为:list index out of range

列表的遍历
num = [35, 98, 12, 27, 66]
# 对列表进行读操作的for循环,无序号
for x in num:
    print(x)
# 有序号,先通过enumerate函数对列表进行预处理
# 循环遍历的时候既可以获取到索引(下标)又可以获取到元素
for i, x in enumerate(num):
    print(i, x)
列表的方法
# 添加和删除元素

list1 = [12, 23, 34]

# 添加元素(append())
list1.append(45)
print(list1)            # [12, 23, 34, 45]

# 在指定位置添加元素(insert())
list1.insert(2, 56)
print(list1)            # [12, 23, 56, 34, 45]

# 删除指定元素(remove())
list1.remove(12)
print(list1)            # [23, 56, 34, 45]

# 删除列表最后一个元素(pop()默认删除最后一个元素)
list1.pop()
print(list1)            # [23, 56, 34]
# pop()也可以删除指定索引位置的元素
list1.pop(1)
print(list1)            # [23, 34]

# 清空列表中的元素
list1.clear()
print(list1)            # []
列表的位置和统计

​ 列表类型的index方法可以查找某个元素在列表中的索引位置;因为列表中允许有重复的元素,所以列表类型提供了count方法来统计一个元素在列表中出现的次数。

list1 = [12, 23, 34, 45, 56, 12]

# 查询元素的索引位置(index())
print(list1.index(12))      # 0
# 若需要查询的元素有2个时,需要从第一个该元素的后一位下标开始查找
print(list1.index(12, 1))   # 5

# 统计元素出现的次数
print(list1.count(12))      # 2
print(list1.count(34))      # 1
print(list1.count(78))      # 0
排序和反转
list1 = ['banana',  'grape', 'apple', 'waxberry', 'pitaya', 'apple']

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值