Python中的内置数据结构之列表list

Python中的内置数据结构:列表list、元组tuple、字典dict、集合set

列表是一种有序的集合,每个元素是可变的。list 列表定义使用中括号 [ ] ,里面元素可以是任意类型,也包括列表本身,也可以是字典、元组等。

1 列表的增删改查

list 列表中的每个元素都有一个数字索引,从 0 开始。

1.1 查询列表的元素

(1)通过索引号访问列表的某一个元素

## 查询列表第三个位置的元素
list1 = ['Hello','World','!','!','!']
list1[2]
## Out[1]:'!'

## 当索引号为负时,表示从列表后倒着查询
list1 = ['Hello','World','!','!','!']
list1[-4]  ## 查询倒数第4个位置的元素
## Out[2]:'World'

(2)通过索引号获取列表中多个元素,连续取值

  1. list[n:m]:取索引n-(m-1)的元素,注意不包括m,列表的区间是左闭右开的。
  2. 若n为空,则默认为0,即list[:m]表示从第一位取到第m-1位;若m为空,则默认为列表的长度len(list),即list[n:]表示从第n位取到最后一位。
  3. 索引号为正时,表示正序取值,索引号为负时,表示倒序取值。
## 取索引号为1到3的元素
list1 = ['Hello','World','!','!','!']
list1[1:4]
## Out[3]:['World', '!', '!']

## 取索引号为2到4的元素
list1 = ['Hello','World','!','!','!']
list1[1:]
## Out[4]:['World', '!', '!', '!']

## 取第2个位置到倒数第2个位置的元素
list1 = ['Hello','World','!','!','!']
list1[1:-1]  ## 左闭右开
## Out[5]:['World', '!', '!']

(3)通过设置步长间隔取元素

  1. list[初始位置:结束位置:步长]。如list[n : m : s]表示从n开始每s个数取一个数,到m-1结束。
## 从第1个位置开始,每两个数取一个,到第5个位置结束
list2 = ['Hello','World','!','?','.',':']
list2[0:5:2]
## Out[6]:['Hello', '!', '.']

1.2 新增列表的元素

(1) append :在列表末尾增加一个元素

## 在列表末尾增加2005
list3 = [2001,2002,2003,2004]
list3.append(2005)
list3
## Out[7]:[2001, 2002, 2003, 2004, 2005]

(2)extend:在列表末尾一次性追加另一个序列中的多个值

## 在list1的末尾添加整个list2
list1 = [2001,2002,2003,2004]
list2 = [2005,2006,2007,2008]
list1.extend(list2[:])
list1
## Out[8]:[2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008]

(3)insert(index,vaule) :在指定位置插入
index–需要插入的索引位置
value–插入列表中的对象

## 在列表第三个位置插入2006,注索引从0开始
list3.insert(2,2006)
list3
## Out[9]:[2001, 2002, 2006, 2003, 2004, 2005]

1.3 删除列表的元素

删除元素的方法有del、pop()、remove()。
(1)del :根据索引号删除指定一个元素或某个范围的元素

## 删除第二个位置的元素
list4 = [1,2,3,4,5]
del list4[1]
list4
## Out[10]:[1, 3, 4, 5]

## 删除第二到第三个位置的元素
del list4[1:3]  ## 列表取值是左闭右开
list4
## Out[11]:[1, 5]

## 删除整个列表
del list4
list4
## NameError: name 'list2' is not defined

(2)pop(索引号) :根据索引号删除指定一个元素

## 删除索引号为1的元素
list4 = [1,2,3,4,5]
list4.pop(1)
list4
## Out[12]:[1, 3, 4, 5]

## 不指定索引号时,删除最后一个元素
list4.pop()
list4
## Out[13]:[1, 3, 4]

(3)remove() :根据给定值删除首个符合条件的元素

## 删除第一个2002
list5 = [2001,2002,2003,2004,2002]
list5.remove(2002)
list5
## Out[14]:[2001, 2003, 2004, 2002]

1.4 修改列表的元素

list6 = ['Hello','World','!','!','!']
print('原列表为:',list6)
## 将第三个元素修改为?
list6[2] = '?'
print('修改后列表为:',list6)
## Out[15]:原列表为: ['Hello', 'World', '!', '!', '!']
##         修改后列表为: ['Hello', 'World', '?', '!', '!']

1.5 复制列表

(1)简单的把list7赋值给list8,此时list7和list8指向同一个列表。(无效复制)

list7 = [5,1,6,4,3,9]
list8 = list7
list8.sort()
print(list7)
## Out[16]:[1,3,4,5,6,9]
print(list8)
## Out[17]:[1,3,4,5,6,9]

(2)使用分片

list9 = [5,1,6,4,3,9]
list10 = list9[:]
list10.sort()
print(list9)
## Out[18]:[5,1,6,4,3,9]
print(list10)
## Out[19]:[1,3,4,5,6,9]

2 列表的常用函数

函数说明
len(list)返回列表的长度
max(list)返回列表中元素的最大值,注需相同类型
min(list)返回列表中元素的最小值,注需相同类型

3 列表的常用方法

方法说明
list.count(obj)统计某个元素在列表中出现的次数
list.index(obj)从列表中找出第一个匹配项的索引位置
list.reverse()反向列表中元素
list.sort()对原列表进行排序,默认升序
list.clear()清空列表
list.copy()复制列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值