Python 列表

列表基础

程序一般都需要存储大量的数值。假设,举个例子,需要读取 100 个数字,计算出它们的平均值,然后找出多少个数字是高于这个平均值的。程序首先读取 100 个数字并计算它们的平均值,然后把每个数字和平均值进行比较来确定它是否超过了平均值。为了完成这个任务,这些数字都必须存储在变量内。为了这样做,你必须创建 100 个变量并且重复编写几乎同样的一段代码 100 次。

显然,编写一个这样的程序是不切实际的。因此,这个问题该怎么解决? 我们需要一个高效、条理的方式。Python 提供了一种被称为 列表 的数据类型,它可以 存储一个有序的元素集合

列表是一个用 list 类定义的序列,包括了创建、操作、处理列表的方法。

创建列表

创建列表的方法有很多,主要分为使用 构造函数 和使用 中括号 两种方法:

  1. 使用构造函数
        list1 = list()                          # 创建空列表
        list2 = list([2,3,4])                   # 创建含有元素 2,3,4 的列表
        list3 = list(["red","green","blue"])    # 创建字符串列表
        list4 = list(range(3,6))                # 创建含有元素 3,4,5 的列表
        list5 = list("abcd")                    # 创建含有元素 'a','b','c','d' 的列表
    
  2. 使用中括号
         list1 = []              # 相当于 list() 构造函数
         list2 = [2,3,4]         # 相当于 list([2,3,4])
         list3 = ["red","green"] # 相当于 list(["red","green"])
    

列表是一种序列类型

列表的各种操作及其作用

操作描述
x in s如果元素 x 在序列 s 中则返回 true
x not in s如果元素 x 不在序列 s 中则返回 true
s1 + s2连接两个序列 s1 和 s2
s * n,n * sn 个序列 s 的连接
s[i]序列 s 的第 i 个元素
s[i:j]序列 s 从下标 i 到 j - 1 的片段
len(s)序列 s 的长度,即 s 中的元素个数
min(s)序列 s 中的最小元素
max(s)序列 s 中的最大元素
sum(s)序列 s 中所有元素之和
for loop在 for 循环中从左到右反转元素
<、<=、>、>=、=、!=比较两个序列(按字典序比较)

列表的解析功能

列表解析提供了一种创建顺序元素列表的简洁方式。一个列表解析由多个方括号组成,方括号内包含后跟一个 for 子句的表达式,之后是 0 或多个 for 或 if 子句。列表解析可以产生一个由表达式求值结果组成的列表。

    list1 = [x for x in range(5)]           # 返回列表 [0,1,2,3,4]
    list2 = [0.5 * x for x in list1]        # 返回列表 [0.0,0.5,1.0,1.5,2.0]
    list3 = [x for x in list2 if x < 1.5]   # 返回列表 [0.0,0.5,1.0]

列表方法

方法名描述
append(x:object)将元素 x 添加到列表结尾
count(x:object)返回元素 x 在列表中的出现次数
extend(1:list)将 1 中的所有元素追加到列表中
index(x:object)返回元素 x 在列表中第一次出现的下标
insert(index:int,x:object)将元素 x 插入列表中指定下标处
pop(i)删除给定位置的元素并且返回它。参数 i 是可选的。如果没有指定它,那么删除 list.pop() 并返回列表中的最后一个元素
remove(x:object)删除列表中第一次出现的 x
reverse()将列表中的所有元素倒序
sort()以升序对列表中的元素排序

将字符串分成列表

除了 list 自带的方法,str 类也提供了返回 list 对象的方法。split() 接受一个列表以及一个被指定的分割符(默认空格)作为输入,产生的字符串列表会按照被指定的分隔符进行分裂:

    items = "Jane John  Peter Susan".split() # 返回列表 ["Jane", "John", "Peter", "Susan"]
    items = "14/11/2024".split("/")          # 返回列表 ["14", "11", "2024"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值