在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. js生成json数据

    <script src="~/static/js/jquery.min.js"></script><script type="text/ja ...

  2. css3弹性盒模型flex快速入门与上手1

    一.什么是flex? flex是css3中引入的一种布局方式,可以非常灵活高效控制元素的排列与对齐方式,大多人称之为弹性布局. 二.怎么使用flex? 任何一个容器都可以指定为flex布局 #box ...

  3. 浅谈PHP7的新特性

    我以前用过的php的最高版本是php5.6.在换新工作之后,公司使用的是PHP7.据说PHP7的性能比之前提高很多.下面整理下php7的新特性.力求简单了解.不做深入研究. 1.变量类型声明 函数的参 ...

  4. C#用SerialPort实现串口通讯

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. Jquery地图热点效果-鼠标经过弹出提示信息

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. nodejs+express-实现文件上传下载管理的网站

    Nodejs+Express-实现文件上传下载管理的网站 项目Github地址(对你有帮助记得给星哟):https://github.com/qcer/updo 后端:基于nodejs的express ...

  7. 线性布局(LinearLayout)

    线性布局(LinearLayout) 备注 match_parent填充布局单元内尽可能多的空间 wrap_content完整显示控件内容 orientation有两个值,horizontal水平显示 ...

  8. 数据收集利器 cAdvisor - 每天5分钟玩转 Docker 容器技术(82)

    cAdvisor 是 google 开发的容器监控工具,我们来看看 cAdvisor 有什么能耐. 在 host 中运行 cAdvisor 容器. docker run \ --volume=/:/r ...

  9. 使用docker 解决一个小问题,你也可能用的到

    以前一直觉得docker是运维用的工具,或者devops 用的工具,一般人应该用不上,直到最近发现docker 还有另外一个妙用,不管是什么语言. 这几天开会网络特别不好,nodejs npm 仓库 ...

  10. sublime中安装package control总是失败

    今天下载了个sublime编辑器,要运行vue文件,想让vue也能高亮显示,在网上搜了一下如何安装.但总是提示控制器没有安装Package Control:There are no packages ...