Python 学习笔记(二) 列表和元组
2013-12-15 16:48
453 查看
Python 包含6种内建序列,列表和元组是其二.
2.1 列表和元组的主要区别:
列表可以修改,元组不能.
序列举例 :
同时,序列也可以包含其它序列:
2.2 通用序列操作
所有序列都可以进行某些特定的操作,包括索引,分片,加,乘以及检查某个元素是否属于序列的成员等.
2.2.1 索引
索引从后往前计数时,最后一个元素是-1 ,倒数第二个元素是-2..
2.2.2 分片
通过分片可以访问一定范围内的元素
分片通过冒号相隔的两个索引来实现, 第一个索引是需要提取的第一个元素的编号, 后一个索引是剩下的不提取的第一个元素的编号.
当要取最后一个元素时,后面的索引值为最后一个元素的索引+1即可.
例如:
这里10对应的第11个元素其实是不存在的.
从头末未开始计数:
这里,第一个索引值必须在第二个索引值左边,否则返回为空
步长:
如例子所示,如果步长大于1,则会跳过某些数字.
捷径: 每4个数字提取出一个出来
2.2.3序列相加
很简单:
直接 ' + ' 即可将序列连接 . 显然, 列表和字符串是不能相加的.
2.2.4 乘法
例子:
初始化一个长度为10的列表
2.2.5 成员资格
使用in 关键字检查一个值是否在序列中, 将返回一个布尔值.
内建函数 len ,max ,min 返回序列中包含元素的个数,最大值和最小值
2.3 Python的苦力 :列表
2.3.1 list 函数
list 可以将序列转化为列表
实例:
2.3.2 基本的列表操作
1 改变列表: 元素赋值:
2 删除元素
使用del语句来实现
分片赋值时, 可以适用于原序列不等长的序列降分片替换:
用来插入也是可以的:
用来删除也是可以的
2.3.3列表方法
1 append
用于在列表末尾追加新的对象
2 count
count 用于统计某个元素在列表中出现的次数
在列表末尾一次性追加另一个序列中的多个值
虽然也可以使用a=a+b 这样的方法,不过效率上要低很多.
4 index
从列表中找出某个值的第一个匹配项的索引位置.
5 insert
移除列表中一个元素(默认是最后一个),并返回该元素的值
7 remove
移除列表中某个值的第一个匹配项
值得注意的是,remove是一个没有返回值的原位置改变方法
8 reverse
将列表中的元素反向存放
9 sort
用于在原位置对列表进行排序.
如果想不改变 x ,得到x的排序序列, 那么则需要用 y 来保存原始x的副本,再对y进行sort
y = x[:]
y.sort();
调用x[:]是得到了包含x所有元素的分片
注意:
使用 y= x 这种方法是没用的, 他只是使 y ,和 x 指向同一个列表而已.
另一个获取已排序列表的方法:sorted
10 高级排序
按特定的方式排序 . 将sort中加cmp函数, 这点与c++ 中的方法一样 ,以后再说.
2.4 元组 : 不可变序列
元组与列表一样,也是一种序列.唯一不同的是元组不能修改. 创建元组的方法很简单, 用逗号分隔了一些值,那么就自动创建了元组.
实现包含一个值的元组: 后面加个逗号
2.4.1 tuple 函数
tuple 函数与list 函数功能基本一样: 以一个序列为参数将其转换成元组.
2.4.2 基本元祖操作
除了创建和访问元组外 ,也没有太多其他操作,可以参照其他类型的序列来实现
小结
序列
成员资格
方法
2.1 列表和元组的主要区别:
列表可以修改,元组不能.
序列举例 :
>>>>edward = ['Edward Gumby',42]
同时,序列也可以包含其它序列:
>>> john = ['John Smith',50] >>> database= [edward,john] >>> database [['Edward Gumby', 42], ['John Smith', 50]]
2.2 通用序列操作
所有序列都可以进行某些特定的操作,包括索引,分片,加,乘以及检查某个元素是否属于序列的成员等.
2.2.1 索引
>>> greeting='hello' >>> greeting[0]
索引从后往前计数时,最后一个元素是-1 ,倒数第二个元素是-2..
2.2.2 分片
通过分片可以访问一定范围内的元素
>>> tag = '012345hello word54321' >>> tag[6:16] 'hello word'
分片通过冒号相隔的两个索引来实现, 第一个索引是需要提取的第一个元素的编号, 后一个索引是剩下的不提取的第一个元素的编号.
当要取最后一个元素时,后面的索引值为最后一个元素的索引+1即可.
例如:
>>> numbers=[1,2,3,4,5,6,7,8,9,10] >>> numbers[7:10] [8, 9, 10]
这里10对应的第11个元素其实是不存在的.
从头末未开始计数:
>>> numbers[-3:-1] [8, 9]
这里,第一个索引值必须在第二个索引值左边,否则返回为空
步长:
>>> numbers[0:10:1] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> numbers[0:10:2] [1, 3, 5, 7, 9]
如例子所示,如果步长大于1,则会跳过某些数字.
捷径: 每4个数字提取出一个出来
>>> numbers[::4] [1, 5, 9]
2.2.3序列相加
很简单:
>>> [1,2,3]+[4,5,6] [1, 2, 3, 4, 5, 6] >>> 'hello,'+'word' 'hello,word' >>> [1,2,3] + 'word' Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> [1,2,3] + 'word' TypeError: can only concatenate list (not "str") to list
直接 ' + ' 即可将序列连接 . 显然, 列表和字符串是不能相加的.
2.2.4 乘法
例子:
>>> 'python'*5 'pythonpythonpythonpythonpython' >>> [23]*5 [23, 23, 23, 23, 23]
初始化一个长度为10的列表
sequence = [None] * 10
2.2.5 成员资格
使用in 关键字检查一个值是否在序列中, 将返回一个布尔值.
>>> permissions ='rw' >>> 'w' in permissions True2.2.6长度 最小值和最大值.
内建函数 len ,max ,min 返回序列中包含元素的个数,最大值和最小值
>>> len (numbers) 10 >>> max(numbers) 10 >>> min(numbers) 1
2.3 Python的苦力 :列表
2.3.1 list 函数
list 可以将序列转化为列表
实例:
>>> list('Hello') ['H', 'e', 'l', 'l', 'o']
2.3.2 基本的列表操作
1 改变列表: 元素赋值:
>>> x=[1,1,1] >>> x[1]=2 >>> x [1, 2, 1]
2 删除元素
使用del语句来实现
>>> names = ['a','b','c'] >>> del names[1] >>> names ['a', 'c']3 分片赋值
>>> name = list ('Perl') >>> name ['P', 'e', 'r', 'l'] >>> name[2:] = list('ar') >>> name ['P', 'e', 'a', 'r']
分片赋值时, 可以适用于原序列不等长的序列降分片替换:
>>> name = list ('Perl') >>> name [1:]= 'yhton' >>> name ['P', 'y', 'h', 't', 'o', 'n']
用来插入也是可以的:
>>> numbers = [1,5] >>> numbers[1:1] = [2,3,4] >>> numbers [1, 2, 3, 4, 5]
用来删除也是可以的
>>> numbers[1:4]=[] >>> numbers [1, 5]
2.3.3列表方法
1 append
用于在列表末尾追加新的对象
>>> lst = [1,2,3] >>> lst.append(4) >>> lst [1, 2, 3, 4]
2 count
count 用于统计某个元素在列表中出现的次数
>>> x= [[1,2],1,2,[1,2]] >>> x.count([1.2]) 0 >>> x.count([1,2]) 23 extend
在列表末尾一次性追加另一个序列中的多个值
>>> a= [1,2,3] >>> b=[4,5,6] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6]
虽然也可以使用a=a+b 这样的方法,不过效率上要低很多.
4 index
从列表中找出某个值的第一个匹配项的索引位置.
>>> knight = ['a','b','c','d'] >>> knight.index('b') 1
5 insert
>>> numbers= [1,2,3,4,5,6,7] >>> numbers.insert(3,'four') >>> numbers [1, 2, 3, 'four', 4, 5, 6, 7]6 pop
移除列表中一个元素(默认是最后一个),并返回该元素的值
>>> x= [1,2,3] >>> x.pop() 3 >>> x.pop(0) 1 >>> x [2]
7 remove
移除列表中某个值的第一个匹配项
>>> x=['a','b','c','d','c'] >>> x.remove('c') >>> x ['a', 'b', 'd', 'c']
值得注意的是,remove是一个没有返回值的原位置改变方法
8 reverse
将列表中的元素反向存放
>>> x ['a', 'b', 'd', 'c'] >>> x.reverse() >>> x ['c', 'd', 'b', 'a']
9 sort
用于在原位置对列表进行排序.
>>> x ['c', 'd', 'b', 'a'] >>> x.sort() >>> x ['a', 'b', 'c', 'd']
如果想不改变 x ,得到x的排序序列, 那么则需要用 y 来保存原始x的副本,再对y进行sort
y = x[:]
y.sort();
调用x[:]是得到了包含x所有元素的分片
注意:
使用 y= x 这种方法是没用的, 他只是使 y ,和 x 指向同一个列表而已.
另一个获取已排序列表的方法:sorted
>>> x=[4,2,6,1,7,9] >>> y= sorted(x) >>> x [4, 2, 6, 1, 7, 9] >>> y [1, 2, 4, 6, 7, 9]
10 高级排序
按特定的方式排序 . 将sort中加cmp函数, 这点与c++ 中的方法一样 ,以后再说.
2.4 元组 : 不可变序列
元组与列表一样,也是一种序列.唯一不同的是元组不能修改. 创建元组的方法很简单, 用逗号分隔了一些值,那么就自动创建了元组.
>>> 1,2,3 (1, 2, 3)
实现包含一个值的元组: 后面加个逗号
>>> 42, (42,)
2.4.1 tuple 函数
tuple 函数与list 函数功能基本一样: 以一个序列为参数将其转换成元组.
>>> tuple([1,2,3]) (1, 2, 3) >>> tuple('abc') ('a', 'b', 'c')
2.4.2 基本元祖操作
除了创建和访问元组外 ,也没有太多其他操作,可以参照其他类型的序列来实现
>>> x=1,2,3 >>> x[1] 2 >>> x[0:2] (1, 2)元祖的分片还是元组 就像列表的分片还是列表一样.
小结
序列
成员资格
方法
相关文章推荐
- Python常用的内置序列结构(列表、元组、字典)学习笔记
- python学习笔记之列表、元组、字典(1)
- Python学习笔记二:列表、字典、元组、集合 简介
- Python学习笔记---元组(tuple)、列表(list)、字典(dict)
- Python学习笔记3_列表和元组
- python学习笔记2-列表与元组
- Python学习笔记六:列表、元组、字典
- Python中列表、字典、元组数据结构的简单学习笔记
- python学习笔记:第五天( 列表、元组)
- Python学习笔记ucas(lecture2)数据结构(字符串、列表、元组、字典、集合)
- python 学习笔记 二 序列, 列表, 元组, 字符串
- python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典
- python学习笔记之列表、元组、字典(2)
- python 学习笔记day04-python字符串、列表、元组
- Python学习笔记(9)-列表list、元组tuple、字典dict、集合set
- python学习笔记(二)列表和元组
- Python学习笔记(1):列表元组结构
- Python学习笔记一:列表和元组
- python学习笔记(二)列表和元组
- Python学习笔记只列表和元组