在python中,最基本的数据结构是序列。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个索引是0。

python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。典型的序列包括列表,字符串和元组。其中列表是可变的,元组和字符串时不可变的。

一、序列

通用序列操作
操作 例子 说明
索引

例子1:

>>> tmp = 'hello'

>>> tmp[0]

'h'

例子2:

>>> 'jump'[2]

'm'

x[n]

可以通过索引获取序列中的元素。

左边位置编号从0开始;右边位置编号从-1开始。

分片

例子1:

>>> num=[1,2,3,4,5,6,7,8]

>>> num[1:3]

[2, 3]

例子2:

>>> num[::2]

[1, 3, 5, 7]

 

[索引1:索引2:步长]

分片操作访问一定范围内的元素。提供两个索引作为边界,第一个索引的元素包含在分片内,第二个则不包含。

1)置空分片中的最后一个索引[3:],就能包含结尾元素。

2)置空分片中的第一个索引[:3]就能包含开始元素。

3)都置空,就能获取整个序列[:]

4)分片的第三个参数就是步长,默认1,不能为0,负数表示从右开始提取。

分片中最左边的索引比最右边的索引晚出现在序列中,就会返回空序列。

相加

例子1:

>>> [1,2]+[2,3]

[1, 2, 2, 3]

例子2:

>>> 'mm'+' hh'

'mm hh'

例子3:

>>> [1,2] + 'hh'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: can only concatenate list (not "str") to list

+

将两种相同类型的序列连接

乘法

例子1:

>>> 3*[1,2]

[1, 2, 1, 2, 1, 2]

例子2:

>>> 3*'abc'

'abcabcabc'

序列*num

新的序列,原来的序列被重复num次数

成员资格

>>> 'h' in 'hello'

True

in运算符会检查一个对象是否为某个序列的成员,条件为真返回True,条件为假返回False
长度

>>> len([1,2,3])

3

>>> len('hello')

5

len函数返回序列中所包含的元素的数量
最大元素

>>> max([33,32,90])

90

max函数返回序列中最大的元素

最小元素

>>> min([33,32,90])

32

min函数返回序列中最小的元素
创建列表

>>> list('hello')

['h', 'e', 'l', 'l', 'o']

list()

根据序列创建列表

二、列表

创建列表用'[]'括起来。

None是一个Python的内建值,表示什么也没有,可以用来初始化空列表[None,None]。

列表可以使用所有适用于序列的标准操作,例如上表列出来的操作。列表也有一些特有的操作。

列表操作
操作 例子 说明
元素赋值

>>> m = [1,2,3]

>>> m[2] = 99

>>> m

[1, 2, 99

使用索引为某个特定的、位置明确的存在的元素赋值
删除元素

>>> m = ['abc',1,45]

>>> del(m[1])

>>> m

['abc', 45]

>>>

del()

删除列表中的元素

分片赋值

例子1:

>>> name = [1,2,3,4]

>>> name[1:] = [66,66,66]

>>> name

[1, 66, 66, 66]

例子2:

>>> name = [1,2]

>>> name[1:] = [33,33,33,33]

>>> name

[1, 33, 33, 33, 33]

例子3:

>>> name = [1,2]

>>> name[1:1] = [22,22]

>>> name

[1, 22, 22, 2

例子4:

>>> name = [1,2,3,4,5,6]

>>> name[1:4] = []

>>> name

[1, 5, 6]

x[n:m] = [...]

1.可以一次为多个元素赋值

2.可以使用与原序列不等长的序列将分片替换

3.可以不替换原有元素的情况下插入新的元素

4.可以实现删除元素

方法是一个与某些对象有密切联系的函数。调用:对象.方法(参数)

列表方法
方法 例子 说明
append

>>> m = [1,2,3]

>>> m.append([1,2])

>>> m

[1, 2, 3, [1, 2]]

用于在列表末尾追加新的对象。这个方法是直接修改原有列表。
count

>>> [1,2,1,[1,2]].count(1)

2

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

>>> m = [1,2]

>>> m.extend([3,4,5])

>>> m

[1, 2, 3, 4, 5]

在列表的末尾一次性追加另外一个序列的多个值。
index

例子1:

>>> [1,2,3,4,5,6,7].index(4)

3

例子2:

>>> [1,2,3,4,5,6,7].index(8)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: 8 is not in list

>>>

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

当找不到时就会返回异常。

insert

>>> num = [1,2,3,4,5]

>>> num.insert(2,'abc')

>>> num

[1, 2, 'abc', 3, 4, 5]

object.insert(索引,元素)

用于将对象插入列表中。但索引超过当前的范围,就会在最后一个位置插入。

pop

>>> num = [1,2,3,4,5,6,7]

>>> num.pop()

7

>>> num

[1, 2, 3, 4, 5, 6]

>>> num.pop(0)

1

>>> num

[2, 3, 4, 5, 6]

object.pop(索引)

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

当索引不存在就会返回异常。

remove

>>> num = [1,2,3,3,4,5]

>>> num.remove(3)

>>> num

[1, 2, 3, 4, 5]

object.remove(元素)

用于一处列表中某个值的第一个匹配项。

找不到就会返回一项

reverse

>>> num = [1,2,3]

>>> num.reverse()

>>> num

[3, 2, 1]

将列表中的元素反向存放
sort

>>> num = [1,6,3]

>>> num.sort()

>>> num

[1, 3, 6]

object.sort()

对列表进行排序,不返回值,是直接改变原有列表的方法。

高级排序  

object.sort(fun())

使元素按照特定方式排序

1.object.sort(cmp),升序排序

2.object.sort(key = xx),为每个元素创建一个键,然后根据键来排序。比如根据字符长度,object.sort(key = len)

3.object.sort(reverse=True/False),取值为True则反向排序。

关于赋值的注意点

x=[1,2,3]

将x的副本赋值给y,需要这么操作,y = x[:]。而不是简单的将y=x。

如果将y=x,那么y和x指向同一个列表,类似c语言里的指针,那么当修改y时(通过列表的方法/操作进行一些操作),就会同时修改x。除非将y重新指向另外一个列表(比如 y = [1,2]),会解除x和y之间的操作。

三、元组

元组就是不可变的序列。

创建元组,用'()'括起来。(1,2,3)

创建一个值的元组,(1,),必须在第一个元素后面加一个','。

元组的基本操作和其它序列一样。

函数 例子 说明
tuple

>>> tuple([1,2,3])

(1, 2, 3)

>>> tuple('abcd')

('a', 'b', 'c', 'd')

>>> tuple((1,2,3))

(1, 2, 3)

以一个序列作为参数将其转化为元组。如果参数就是元组,那么该参数就会原样返回

Python学习--列表和元组的更多相关文章

  1. python学习-列表、元组和字典(三)

    学习笔记中的源码:传送门 3.1 列表和元组 3.2 不同类型变量的初始化: 数值 digital_value = 0 字符串 str_value = "" 或 str_value ...

  2. Python学习---列表,元组,字典

    ### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...

  3. python学习——列表和元组

    一.列表 1)列表介绍 列表是Python内置的一种数据类型. >一组有序项目的集合(从第一个成员序号为0开始依次递增排序) >可变的数据类型(可进行增删改查) >列表中可以包含任何 ...

  4. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  5. python之列表,元组,字典。

    在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18 ...

  6. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  7. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  8. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  9. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

随机推荐

  1. uvalive 3135 Argus

    https://vjudge.net/problem/UVALive-3135 题意: 有一个系统有多个指令,每个指令产生一个编号为qnum的时间,每个指令的触发间隔不相同,现在给出若干个指令,现在的 ...

  2. Redhat 5上OPENLDAP的安装备份和恢复

    1. 安装 1.1. 安装环境 查看当前操作系统版本: [root@vmw9181-app ~]# cat /etc/issue Red Hat Enterprise Linux Server rel ...

  3. java启动监听错误: org.springframework.web.context.ContextLoaderListener

    项目启动会报以下错误: 解决方案如下: 感谢好心人的提示“其实可能是你的jar文件没有同步发布到自己项目的lib目录中(如果你是用Maven进行构建的话) 可以试试 下面的办法 项目点击右键 点击 P ...

  4. 【Windows 10 应用开发】细说文本资源文件(resw)

    最近,小戏骨版<红楼梦>很是火热,老周一口气看完了9集,一直看到 Surface 的风扇呼呼响.林黛玉和薛宝钗这两个角色都演得不怎么样,倒是演史湘云的娃娃演得不错,老周甚是喜欢. 于是,昨 ...

  5. mysql中将时间转为秒

    项目中遇到的问题,需要将时间(时 分 秒)转为秒,业务上处理有些麻烦,尝试找了多种处理函数,然而并没有用 完美解决办法: TIME_TO_SEC   格式'HH:MM:SS'或HHMMSS SELEC ...

  6. 实现mysql在windows server 2008下自动备份

    环境:MySQL   安装位置:D:\MySQL论坛数据库名称为:Db_Test数据库备份目的地:D:\db_bak\ 1.首先新建一个bat文件 rem ********************** ...

  7. commons-pool与commons-pool2连接池

    commons-pool和commons-pool2是用来建立对象池的框架,提供了一些将对象池化必须要实现的接口和一些默认动作.对象池化之后可以通过pool的概念去管理其生命周期,例如对象的创建,使用 ...

  8. 学习笔记之CSS样式(选择器背景字体边框绝/相对、固定位置and分层流等)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 根据Dockerfile创建docker dotnet coer 镜像

    那我们先来看看Dockerfile文件内容,注意这个文件是没后缀名的. #依赖原始的镜像,因为我们是要创建dotnet coer镜像,所以我就用了官方给的镜像[microsoft/dotnet:lat ...

  10. javaScript 设计模式系列之四:组合模式

    介绍 组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有"整体-部分"关系的层次结构.组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用 ...