Python基础学习二
在Python中,最基本的数据结构(通过某种方式组织在一起的数据元素的集合)是序列。Python包含6种内建序列,即列表、元组、字符串、unicode字符串、buffer对象和xrange对象。
1.通用序列操作
Python中所有序列的通用操作有:索引([])、分片([:])、序列相加(+)、乘法(*)、成员资格(in/not in)、长度、最大值和最小值。
1.1索引
序列中的元素从0开始,从左向右自然顺序编号(正数索引)。交互模式下也可从右开始索引(负数索引),最右边的元素索引值为-1,注意:-0和0均指向第一个元素。
str="Hello"
str[0]
'H'
str[1]
'e'
str[-1]
'o'#不定义变量直接使用索引效果是一样的
"Hello"[0]
'H'#还可直接对函数的返回结果进行索引操作
str1=input()[0]
hello
str1
'h'
总结:索引既可以对变量的引用操作,也可以直接操作序列,还可以操作函数的返回序列。
1.2分片
索引用来对单个元素进行访问,分片可以对一定范围内的元素进行访问。
分为正数索引和负数索引(从右边开始计数)。
number=[1,2,3,4,5,6,7,8,9,10]
number[0:3]
[1, 2, 3] #正数索引
number[0:9] #注意:结束点的元素不包含在分片内,即number[9]不包含在内
[1, 2, 3, 4, 5, 6, 7, 8, 9]
number[-3:-1] #负数索引,从右开始计数,取倒数第三和倒数第二的数字
[8, 9]
注意:number[a:b]意思是取下标的那些元素,不包含number[b].
问题:怎样取到最后一个元素?
答:第二个索引为空即可。
number=[1,2,3,4,5,6,7,8,9,10]
number[7:]
[8, 9, 10]
number[7:10] #也可令终点加1,这样取的数就为number[7]——number[9]
[8, 9, 10]
number[-3:]
[8, 9, 10]#也可令第一个索引为空
number[:3]
[1, 2, 3]
#两个索引都为空,表明取得整个数组
number[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
分片时还可取步长[起点:终点:步长],上述默认步长为1
number=[1,2,3,4,5,6,7,8,9,10]
number[0:10:2]
[1, 3, 5, 7, 9]
number[::2]
[1, 3, 5, 7, 9]#步长也可设置为负数
number[10:0:-2]
[10, 8, 6, 4, 2]
number[::-2]
[10, 8, 6, 4, 2]
number[10:0:-1] #注意:第二个索引为0,取不到序列中的第一个元素
[10, 9, 8, 7, 6, 5, 4, 3, 2]
number[10::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
1.3序列相加及乘法
[1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
[2]*5
[2, 2, 2, 2, 2]
空列表可用[]表示,若想创建一个占用多个元素的空间,却不包括任何有用内容的列表,则可用空列表乘以对应数字。
若要初始化一个长度为x的序列,可以使用None,None是Python的内建值,代表空值。
sq = [None]*5 #初始化sq为含有5个None的序列
sq
[None, None, None, None, None]
1.4成员资格
见上一节笔记
1.5长度、最小值和最大值
number=[-1,2,5,8]
len(number)
4
max(number)
8
min(number)
-1
max(3,5,7,9)
9
min(2,-5)
-5
2.列表
2.1更新列表
元素赋值
a=[1,2,5,8]
a[2]=100
a[3]='hello'
a
[1, 2, 100, 'hello']
注:可以对一个列表中的元素赋不同的值。
增加元素——list.append(obj)
list是列表名,qppend直接在列表末尾添加新元素。
sq=['a','b','c']
sq.append(3)
sq
['a', 'b', 'c', 3]
a=[1,2,3]
a.append('hello')
a
[1, 2, 3, 'hello']
注:可以往数字序列中添加字符串,也可以往字符串序列中添加数字。
删除元素——del
a=[1,2,3]
del a[1]
print('删除第二个元素后:',a)
删除第二个元素后: [1, 3]
分片赋值
引进一个新函数——list()函数,该函数可以直接将字符串(所有类型的序列)转换为列表
list('认真学习Python')
['认', '真', '学', '习', 'P', 'y', 't', 'h', 'o', 'n']
sq=list('hi,boy')
sq[3:]=list('man')
sq
['h', 'i', ',', 'm', 'a', 'n']
sq[3:]=list('woman') #分片赋值可以使用与原序列不等长的序列将其分片替换
sq
['h', 'i', ',', 'w', 'o', 'm', 'a', 'n']
a=['a','e']
a[1:1]=list('bcd')
a
['a', 'b', 'c', 'd', 'e']
注:上述程序表明分片赋值可以在任意位置增加元素。
a=list('abcde')
a[1:4]=[]
a
['a', 'e']
注:上述程序表明分片赋值也可以在任意位置删除元素。
2.2嵌套列表
[列表1,列表2,...]
a1=['a','b','c']
a2=[1,2]
mix=[a1,a2] #mix是一个列表,里面的每一个元素a1、a2也是列表
mix[0]
['a', 'b', 'c']
mix[1]
[1, 2]
2.3列表方法
上一节讲了有关字符串与数字的内置函数,这一节讲讲有关列表的一些常用方法。
首先,方法调用与函数调用类似,调用语法如下:
对象.方法(参数)
例如:1、之前提到的list.append(obj)
2、list.count(obj)——统计某个元素在列表中出现的字数
3、list.extend(seq)——在列表末尾一次性追加另一个序列中的多个值
a1=['a','b','c']
a2=[1,2]
a1.extend(a2)
a1
['a', 'b', 'c', 1, 2]#也可用分片赋值实现相同结果
a1=['a','b','c']
a1[len(a1):]=a2
a1
['a', 'b', 'c', 1, 2]
4、list.index(obj)——查找列表中某一个元素的索引位置(若查找的元素不在列表中则报错)
5、list.insert(index,obj)——将对象插入列表(index表示要插入的索引位置,obj表示插入对象)
6、list.pop(obj)——移除列表中某一位置的元素(obj表示要移除的列表中元素的编号),并且返回该元素的值
参数为空时,默认移除最后一个元素
7、list.remove(obj)——移除列表中某个值的第一个匹配项(obj为要移除的对象)
8、list.reverse()——反转列表(不需要输入参数)
对应地有个reversed()函数,可将序列反向迭代(reversed(序列名))
9、list.sort(func)——对原列表进行排序,若指定参数func,则使用该参数的方法进行排序
sort会改变原来列表,而不是简单返回一个已排序的列表副本
num=[5,8,1,3,6]
n=num #直接将列表num赋值给n
n.sort()
print('变量n的结果是:',n)
变量n的结果是: [1, 3, 5, 6, 8]
print('变量num的结果是:',num)
变量num的结果是: [1, 3, 5, 6, 8]#num也被排序了
num=[5,8,1,3,6]
n=num[:] #将num切片后赋值给n
n.sort()
print('变量n的结果是:',n)
变量n的结果是: [1, 3, 5, 6, 8]
print('变量num的结果是:',num)
变量num的结果是: [5, 8, 1, 3, 6]#num保持原样num=[5,8,1,3,6]
n=num.sort()
print('变量n的结果是:',n)
变量n的结果是: None
注:若不将原列表分片赋值给另一个变量,则两个列表都会被排序
sort修改了原列表,返回的是空值
sorted()函数可以直接获取列表的副本进行排序
num=[5,8,1,3,6]
n=sorted(num)
n
[1, 3, 5, 6, 8]
num
[5, 8, 1, 3, 6]
#num保持原样
注:sorted函数可用于任何序列,返回结果都是一个列表
10、list.clear()——清空列表
类似于del a[:]
11、list.copy()——复制列表
12、高级排序
sort方法有两个可选参数key和reverse,称为关键字参数
f=['study','python','is','happy']
f.sort(key=len) #按字符串由短到长排序
f
['is', 'study', 'happy', 'python']
f.sort(key=len,reverse=True) #先按字符串由短到长排序,再逆序
f
['python', 'study', 'happy', 'is']num=[5,8,1,3,6]
num.sort(reverse=True)
num
[8, 6, 5, 3, 1]
3.元组
与列表类似,不同之处在于元组的元素不能修改,若用逗号分隔了一些值,就会自动创建元组。
()为空元组
包含一个值的元组,必须在括号中的元素后面加上一个逗号,例如:(1,)
1,2,3
(1, 2, 3)
'hello','world'
('hello', 'world')
3.1 tuple()函数——以序列为参数,将其转化为元组
tuple('hello')
('h', 'e', 'l', 'l', 'o')
tuple([1,2,3])
(1, 2, 3)
3.2元组的基本操作
1、使用下标索引访问元组
2、元组的元素不允许修改或删除,但用"+"进行元组连接,del删除整个元组
3、len()、max()、min()
Python基础学习二相关推荐
- Python基础学习笔记之(二)
Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...
- python pyramid基础学习二
python pyramid基础学习二 1.前言 前面我们使用了基础命令创建pyramid项目,并运行了Hello word,万事开头难,我们知道了开发pyramid项目需要一个env文件夹,里面包 ...
- Python基础学习(二)-条件,循环语句
Python基础学习(二)-条件,循环语句 一,条件语句 1,if else if 判断条件: 执行语句... e ...
- python开发需要掌握哪些知识-Python基础学习需要掌握哪些知识
1.1Python的对象 python的内置对象类型有很多,包括数字,字符串,列表,集合,元组,字典等等,在Python中,一切皆对象 pickle腌制--在Python中,如果有一些对象需要持久性存 ...
- Python基础学习笔记之(一)
Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...
- Python基础学习备忘录上
Python基础学习 备忘录上 Python语法 1.1 输出 1.1.1 输出换行的更改 1.1.2 输出整型 1.1.3 输出字符串 1.1.4 字符串拼接与多行输出 1.1.5 输入输出类型转换 ...
- python | 基础学习(一)了解Bug、pycharm、变量、程序的三大流程(顺序、if、while)、运算符、快捷键
文章目录 一.引言 1.python的起源 2.解释器 3.python的设计目标 4.python的特点 二.python 1.了解BUG 2.python的三种运行方式 ①解释器python/py ...
- Python基础学习之列表操作
Python基础学习之列表操作 文章目录 Python基础学习之列表操作 1. 列表的增,删,改,查 1.1 列表的增加,常用的方法有:append, extent, incert 1.2 列表的删除 ...
- Python基础学习之字典操作
Python基础学习之字典操作 文章目录 Python基础学习之字典操作 1. 字典的创建 1.1 直接赋值法 1.2 关键字赋值法 1.3 列表转化法 1.4 元素增加法 1.5 元组转化法 1.6 ...
最新文章
- Microsoft NLayerApp案例理论与实践 - 项目简“.NET研究”介与环境搭建
- 怎么将jsp中var报错_招聘中不得将全日制作为限制性条件,怎么就不公平了?
- 大话数据结构学习笔记一:第一章
- db2函数写法简单说明
- SqlServer发布订阅错误收集
- 【深度语义匹配模型 】原理篇一:表示型
- ubuntu14.04 配置C/C++开发IDE
- Thinking in java Java编程思想 该不该读
- 关于Qt::WA_TransparentForMouseEvents的一些记录
- 国际著名黑客大赛介绍
- vmware虚拟机连不上服务器,VMware虚拟机nat模式连不上网怎么办
- javabean/Listjavabean与map/Listmap互相转换
- RT-Thread柿饼的控件简介
- 普元 AppServer 部署应用时报错:Exception while loading the app : CDI deployment failure
- mysql日常管理事件
- 安装操作系统的方法?
- 云服务部署项目(一)——初入新世界大门
- 自媒体如何找免费素材
- 【BDTC前瞻】公安部专家谈大数据安全与政策法规
- py3 BeautifulSoup 利器 html 解析器使用
热门文章
- 基于改进逆透视变换的智能车测距技术_禾赛科技:助力2020智能网联汽车C-V2X大规模测试活动_E理财云掌号...
- Blue Origin宣布,Jeff Bezos和他的兄弟Mark将与竞拍成功者一起参加7月20日新雪帕德号火箭的首次载人飞行
- 【书影观后感 十一】我情愿一直追逐理想
- Windows Server 2008R2 搭建FTP服务器完美实现用户隔离
- linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy
- 【Java项目:基于java+ssm生鲜超市进销存管理系统——计算机毕业设计
- PostGreSQL设置主键自增
- 清华大学ucore实验lab
- 网络流__5 多源汇最大流
- 「解析」牛客网-华为机考企业真题 1-20