前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习笔记2.4-数据结构之列表和元组

python学习笔记2.4-数据结构之列表和元组

作者头像
锦小年
发布2018-01-02 14:01:22
7400
发布2018-01-02 14:01:22
举报
文章被收录于专栏:锦小年的博客锦小年的博客

python语言中包含的数据结构比较简单,除了简单的变量以外,还有列表(元组)、字典、集合。对于数据结构的操作一般包含四种:增、删、查、改。本文主要介绍列表(list)(包括元组tuple)的操作。 python中的list是一个有序动态集合,能够随时向其中添加或者删除元素,而tuple则相反,是一个有序静态集合,即一旦创建就不能随修改。

list

  • 创建(初始化)。list中的元素可以为任意类型,整型、字符型、列表、字典都可以.元素之间用逗号(,)隔开,整个list用[ ]包围。
代码语言:javascript
复制
la = [1,2,3]
lb = [1.2, 88, 'ss' ]
lc = [] # 空列表,也可以这样创建: lc = list()
ld = [[1, 3,5],{'s':8}, 'ss', 2.5, 6] # list的元素很灵活,只要是对象即可
  • 删除。list的删除很简单,直接使用python删除关键字:del 删除的内容, 这里删除的内容即可以是整个list,也可以是list中的某一个元素。
代码语言:javascript
复制
a = ['s','b', 'c']
del a[1] # 删除元素b
del a # 删除整个list
  • 查找(索引)。list是一个有序集合,即通过元素的下标来索引元素,与c/c++类似,第一个元素的下标为0(MATLAB的第一个下标为1)。
代码语言:javascript
复制
a = [i for i in range(10)]
for i in range(10):
    print(a[i])

除了能正向索引,还能反向索引,并不需要知道list的长度,list的第一个元素的下标为0,最后一个元素的下标为-1,一次向前减一,即倒数第二个元素下标为-2

代码语言:javascript
复制
a = [i for i in range(10)]
a[-1]  # 最后一个元素,打印出来为9
a[-2]  # 倒数第二个元素,打印出来为8

除了上述通过索引来获取单个元素,还可以通过区间下标(左闭右开)来一次索引很多元素,python中称为这种方式为切片,需要注意的是区间下标为左闭又开,即不会索引到右边下标对应的元素,只会索引到它前一个元素。

代码语言:javascript
复制
a = [i for i in range(1,10,2)]
print(a[1:3]) # 打印元素3和5
print(a[1:-1]) # 第二个到倒数第二个
print(a[1:]) # 第二个以后的全部元素

屏幕输出:

代码语言:javascript
复制
[3, 5]
[3, 5, 7]
[3, 5, 7, 9]
  • 修改。修改list一般有两种方式:
    • 在list末尾直接增加元素,这样也增加了索引,增长了列表长度。通过append()方法实现
    • 修改已有索引的元素的值,这样不增加索引,也不会增加列表的长度。
代码语言:javascript
复制
a = [1,4,3]
a.append(5) # 在末尾增加
a[2] = 9 # 通过索引直接修改
  • list的操作符操作。对于 list也可以使用len()、+、* 等操作符,len(list)用来获取list的长度(最大索引值+1),+ 号用于组合列表,* 号用于重复列表。
代码语言:javascript
复制
a = [7,'ww','ii']
length = len(a)
b = [9,44]
c = a + b #直接将a、b首尾相连
d = a*4 # 将列表a重复4次,并生成一个新的列表

*对于列表的操作只要没有赋值,就不会修改原列表的值,只会返回一个新的列表。例如上例中的+和操作、以及索引或者切片操作,都不会修改原list的值。*

  • list包含的其他方法:

方法

功能

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

统计某个元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj)

将对象插入列表

list.pop(obj=list[-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中元素

list.sort([func])

对原列表进行排序

tuple

元组(tuple)是静态列表,初始化后就不能随表修改,用小括号( )表示,用下标索引,与list相比,没有修改的功能,其他都一样。在定义元组的时候我们需要注意:因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义。因此,Python规定,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义

代码语言:javascript
复制
t = (3,5)
t = (4, ) # 只有一个元素时,一定要记得加,
t = (1,'2','ss',['e','y']) #当元组中的元素为可修改的对象,比如list和dict时,这里的list和dict能够修改。
t[3][0] = 1 #  这里修改的是list而不是tuple,因为tuple的索引没有变
t[0]  # 与list一样,用下标索引
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • list
  • tuple
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档