Python学习笔记(三)——Python数据结构之序列
来源:互联网 发布:js 计数器 滚动效果 编辑:程序博客网 时间:2024/06/06 12:35
序列(sequence )是Python中最基本的数据结构,笔者尚且理解为java 数组。其中列表和元组是最常用的序列类型。列表中元素可修改,而元组不能。
一、序列通用操作
Python提供了针对所有序列通用的内建函数(内建函数就是Python本身含有的,无需引入其他模块方可使用),分别有:索引indexing、分片sliceing、加adding、乘multiplying、检查某个元素是否属于序列、计算序列长度、找出最大、最小元素的内建函数。
1、索引
0为序列第一个元素,-1为最后一位。
2、分片
用于截取序列中的某一部分值。根据给出的索引边界,第一个索引元素包含在分片内,第二个则不在返回结果中。
分片操作就是按照步长逐个遍历序列元素,默认步长为1,如果设置步长大于1,则遍历时会跳过某些元素进行。步长可是不为0 的任意正负数。为负时,表示从右至左提取元素。
3、序列相加
4、乘法
5、判断元素是否存在于序列中
6、长度 、最大值、最小值
#-*- coding: utf-8 -*-#indexing 输入2006,返回第四位,-1表示最后一位forth=raw_input('Year: ')[3] print forth #6forth=raw_input('Year: ')[-1] print forth #6#sliceing numbers=[0,1,2,3,4,5,6,7,8,9,10,11,12]#以步长为1(默认),依次截取1到第10位元素print numbers[1:10] #[1, 2, 3, 4, 5, 6, 7, 8, 9]#以步长为3,依次截取1到第10位元素print numbers[1:10:3] #[1, 4, 7]#以步长为3,依次截取0到最后一位元素print numbers[::3] #[0, 3, 6, 9, 12]#以步长为3,反着截取0到最后一位元素print numbers[::-3] #[12, 9, 6, 3, 0]sequence0=['max','linxi','lu']#adding 字符串+print numbers+sequence0 #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 'max', 'linxi', 'lu']#mulprint numbers*2 #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]sequence1=['3','2']container=[sequence0,sequence1] print container #[['max', 'linxi', 'lu'], ['3', '2']]#len\max\minprint len(numbers) print max(numbers)print min(numbers)#isExistif 3 in numbers :print 'yes' #yesprint 2 in numbers #Truedatabase=[['max','1'],['linxi','1'],['niaon',1],['li',1]]username= raw_input()pin=raw_input()if [username,pin] in database : print 'Access granted'二、列表
列表是序列的一个种类,以上操作均适用于列表,同时因为列表是可变的,所以对于列表常用的操作还有元素赋值、删除、分表赋值、列表方法
1、list函数
list=list('mxz')print listname= list('max') #报错!
报错'list' object is not callable
原因list是一个内建函数,如果使用list作为变量名,就无法调用list函数。
2、分片赋值
从某位开始替换成**字符
#list函数+分片赋值 将index2开始替换name= list('maxxx')name[2:]=list('Zhong')print name #['m', 'a', 'Z', 'h', 'o', 'n', 'g']#分片赋值 从第一位开始,插入1个name[1:1]=['linxi']print name #['m', 'linxi', 'a', 'Z', 'h', 'o', 'n', 'g']name[1:1]=list('linxi')print name #['m', 'l', 'i', 'n', 'x', 'i', 'linxi', 'a', 'Z', 'h', 'o', 'n', 'g']3、列表方法
append()
如同stringbuffer的append,
count()
判断某元素在列表中出现的次数
extend()
直接在list后追加,但a.extend(b)返回的是一个新的a列表,而a+b,返回a+b的一个副本,a列表本身并未发生改变。
index()
找出某元素的索引值
insert()
del()
pop()
注意不同于print a.insert()方法直接返回None,print a.pop(0) 不会报错,直接返回a.insert(2,‘max’)就直接返回None,因为pop是唯一一个 既能修改列表、又能直接返回元素值的方法,python使用append 方法代替入栈 push, 出栈使用pop。
remove('value')
x.reverse() 123变成321
sort 将列表中的元素按照一定顺序排序,返回一个新的对象
#-*- coding: utf-8 -*-#list函数+分片赋值 将index2开始替换name= list('maxxx')name[2:]=list('Zhong')print name #['m', 'a', 'Z', 'h', 'o', 'n', 'g']#分片赋值 从第一位开始,插入1个name[1:1]=['linxi']print name #['m', 'linxi', 'a', 'Z', 'h', 'o', 'n', 'g']name[1:1]=list('linxi')print name #['m', 'l', 'i', 'n', 'x', 'i', 'linxi', 'a', 'Z', 'h', 'o', 'n', 'g']#append extend 追加 和扩展#append 是添加ylist,而extend是直接把b的元素追加到a后,还是一个单个元素的listx=[1,2,3]y=[2,2]x.append(y)print x #[1, 2, 3, [2, 2]]#countx=[1,1,1,1,1,2]print x.count(1) #5#extenda=[1,2,3]b=[4,5,6]a.extend(b)print a #[1, 2, 3, 4, 5, 6] extend修改了被扩展的序列,print b #[4, 5, 6]a=[1,2,3]b=[4,5,6]a+b #[1, 2, 3, 4, 5, 6] #原始的连接并未被修改,只是返回了a和b连接副本的全新列表。连接操作效率比extend低print a #[1, 2, 3]print b #[4, 5, 6]#indexprint a.index(2) #1 返回a中2的index值#insert,在索引2处添加mam 字符a.insert(2,"mam")print a #[1, 2, 'mam', 3]#出栈 剔除索引为0的元素print a.pop(0) #[1, 2, 'mam', 3]print a #[2, 'mam', 3]a.pop()#默认剔除最后一位print a #[2, 'mam']#sortx=[4,2,3]x.sort() [2,3,4]三、元组 不可修改
(1,2,3) 直接创建了一个元组
(1,)当只有一个元素时,必须加,
tuple :list转成元组
x=[1,23,2]x.insert(2,'max')tuple(x) #list转成元组print x
四、总结
针对元素值
lst.append(‘value’)
lst.count(‘value’)
lst.extend(‘value’)
lst.index(‘value’)
lst.insert(index,value)
lst..remove(value)
针对索引
x[1]=2
把索引1处值赋为2
del names[2]
删除names列表索引2处值
name[2:]=list(‘max’)
从name索引2处替换成max
x.pop(index)
无参数
x.sort()
x.reverse()
0 0
- Python学习笔记(三)——Python数据结构之序列
- Python学习教程(三)——序列之字符串
- Python学习笔记 -- 序列(三)列表
- Python学习笔记(三)-- 数据结构
- Python学习笔记-初级(三):数据结构
- python 之序列学习笔记
- Python 学习笔记 3 数据结构(3.2序列)
- Python学习笔记(四)——Python数据结构之字符串&字典
- Python数据结构之序列
- Python数据结构之序列
- Python学习笔记之六——数据结构
- Python学习笔记之(三)
- python学习笔记之三
- [python]python学习笔记(三)——编译
- Python学习笔记——序列、列表
- 《Python基础教程》学习笔记——序列
- Python学习笔记之Python基础(三)-输入
- 学习python笔记——数据结构
- CoordinatorLayout使用总结
- xUtils中DbUtils的使用
- TortoiseGit提交代码到GitHub
- C# RSA加密、解密、加签、验签、支持JAVA格式公钥私钥、PEM格式公钥私钥、.NET格式公钥私钥 -变态模式【支持私钥加密,公钥解密】(二)
- PAT 1109 Group Photo
- Python学习笔记(三)——Python数据结构之序列
- 【总结】JDK、java环境配置
- greedao 详细说明
- DP HDU-1069
- 基于自定义NumberPickerView时间选择器
- JS中Null与Undefined的区别
- 判断B数组中的所有元素是否都在A数组中
- 如何写好 Git commit messages
- 动态库的编译和链接(linux)