Python学习之探秘列表与元组

Python序列

Python中最基本的数据结构为序列。序列中的每个元素都有编号,即其位置或索引,一般从0开始。

序列中包含两个常用的数据结构:列表(list)与元组(tumple)。二者的主要不同就在于是否可以进行修改元组不支持修改,而列表可以进行修改。

1.1 通用的序列操作

  • 索引:可以通过索引值对序列中的元素进行访问
  • 切片:可以使用[m:n:k]的方式完成序列中元素的截取,当m,n为负数的时候序列从后往前倒着切,m,n有一个缺省时代表从头或到尾部结束,k则表示步长
  • 相加:支持两个序列通过 + 拼接起来
  • 相乘:支持序列元素与数字相乘,代表序列中某元素的重复次数
  • 成员资格检查:可以使用 in 关键字来确认某元素是否在此序列中,在就返回True,否则返回 False

1.2 列表

创建方式:

#1.使用内建函数list()创建
arr = list([1,2,3,4])
#2.使用字面量创建
arr = [1,2,3,4]

基本的列表操作:

  1. 修改:直接通过索引给元素赋值即可
  2. 删除:通过del关键字删除列表中的元素
  3. 插入和替换:可以使用切片进行插入和替换
  4. 在尾部添加:使用append()方法
  5. 清空列表:使用clear()方法
  6. 复制列表:使用copy()方法对列表进行深复制
  7. 计算频次:使用count()方法可以计算某元素在列表中出现的频次
  8. 列表拼接:使用extend()方法将另一个列表拼接到本列表的尾部(list1 + list2 返回新的列表 list3,list1.extend(list2) 则返回拼接完成后的list1)
  9. 查找元素:使用index()方法将在列表中查找指定值第一次出现的索引
  10. 插入元素:使用insert()方法将一个对象插入列表
  11. 删除元素:
    1. 使用pop()方法,默认删除尾部元素,可指定索引位置进行删除(根据索引值删除元素)
    2. 使用remove()方法(根据元素中的内容删除元素)
  12. 列表逆序:使用reverse()方法,可将整个列表的原始顺序逆转
  13. 列表排序:
    1. 使用sort()方法,可选两个参数 key 和 reverse,直接在自身列表上进行排序
    2. 使用sorted()方法,可返回一个排好序的列表,而不是在自身列表上进行排序

列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。列表推导式通常由以下几种常用的语法格式:

  • 第一种写法:
# 生成指定范围的数值列表
列表名 = [表达式 for 变量名 in range(开始值, 结束值)]
  
# 例如:
square = [x**2 for x in range(1, 11)] # 注意range()是前闭后开区间
print("1到10的平方分别是", square)
  • 第二种写法:
# 根据其他列表生成指定需求的列表
列表名 = [表达式 for 变量名 in 其他列表] 

# 例如:
price = [1200, 5330, 2988, 6200, 1998, 8888]
sale = [int(x * 0.5) for x in price]
print("原价格:", price)
print("打五折的价格:", sale)
  • 第三种写法:
# 从其他列表中选择符合条件的元素组成新的列表
列表名 = [表达式 for 变量名 in 其他列表 if 条件]

#例如:
price = [1200, 5330, 2988, 6200, 1998, 8888]
sale = [x for x in price if x > 5000]
print("原价列表:", price)
print("价格高于5000的:", sale)

1.3 元组

元组除了无法进行修改之外,其他与列表几乎一致
创建方式:

#1. 使用内建函数tuple()创建
tuple1 = tuple([1,2,3])
#2. 使用字面量创建
tuple2 = (1,2,3)

需要注意的是,元组使用字面量进行创建的时候,若只包含一个元素,则需要在元素后加上一个逗号,如:tup1 = (1,) 因为在Python中,1(1)都代表数字1

元组推导式
与列表推导式写法一致,只需要将外层的[]换为()即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值