Python学习--列表和元组
在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学习--列表和元组的更多相关文章
- python学习-列表、元组和字典(三)
学习笔记中的源码:传送门 3.1 列表和元组 3.2 不同类型变量的初始化: 数值 digital_value = 0 字符串 str_value = "" 或 str_value ...
- Python学习---列表,元组,字典
### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...
- python学习——列表和元组
一.列表 1)列表介绍 列表是Python内置的一种数据类型. >一组有序项目的集合(从第一个成员序号为0开始依次递增排序) >可变的数据类型(可进行增删改查) >列表中可以包含任何 ...
- Python学习-列表元组字典操作
一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...
- python之列表,元组,字典。
在博主学习列表,元组以及字典的时候,经常搞混这三者.因为他们都是用括号表示的.分别是[],(),{}. 列表(list): [1,'abc',1.26,[1,2,3],(1,2,3),{'age:18 ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- Python基础------列表,元组的调用方法
Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- Python基础-列表、元组、字典、字符串
Python基础-列表.元组.字典.字符串 多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...
随机推荐
- Ubuntu16笔记本双显卡安装NVIDIA驱动
blockquote { direction: ltr; color: rgb(0, 0, 0) } blockquote.western { font-family: "Liberatio ...
- mui框架移动开发初体验
前 言 博主最近在接触移动APP,学习了几个小技巧,和大家分享一下. 1. 状态栏设置 现在打开绝大多数APP,状态栏都是与APP一体,不仅美观,而且与整体协调.博主是个中度强迫症患者,顶部那个 ...
- javascript的数值转换 number()详解
---恢复内容开始--- number() parseInt() parseFloat()这三个函都可以把数非数值转换为数值,我们看看他们的区别在哪里 一 Number() 转型函数Number()是 ...
- VS2017 编译 chromium和webrtc
Chromium的编译和WebRTC的编译方式相同,WebRTC官网也是使用的Chromium的编译文档. 步骤一.跳 - 墙,先跳 - 墙这是第一步哟,chromium大概有10几个G,webrtc ...
- 【转】Windows自动连接、断开无线网络
前提是先连接到指定的WiFi网络上. 然后通过 netsh wlan export profile 将网络配置文件导出,然后使用如下命令添加配置文件到指定的网络接口上,再执行连接命令即可. netsh ...
- Html 初识样式表&选择器
样式表&类选择器分类 样式表分类: 1.内联式样式表:在标签内部写样式代码,精确但不方便,增加工作量,后期修改麻烦. 2.嵌入式样式表:一般写在head内 以<style>.... ...
- caffe源码 池化层 反向传播
图示池化层(前向传播) 池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层: 输入参数如下: 输入: 1 * 3 * 4 ...
- sa账户和密码丢失如何找回
来自:http://www.cnblogs.com/xred/archive/2012/03/09/2386185.html 在网上看了很多如何修改SQLServer2005的密码的方法.大多数都是转 ...
- mysql分表场景分析与简单分表操作
为什么要分表 首先要知道什么情况下,才需要分表个人觉得单表记录条数达到百万到千万级别时就要使用分表了,分表的目的就在于此,减小数据库的负担,缩短查询时间. 表分割有两种方式: 1水平分割:根据一列或多 ...
- 关于EF Code First模式不同建模方式对建表产生的影响
今天在学EF Code First模式的时候,发现几个很有趣的问题,问题如下: 1.当编写玩实体后,不指定任何主键约束,EF会找长的最像Id的,然后设置其为主键,验证代码如下: //User类 cla ...