python笔记之序列
str字符串
- 表达:单引号,双引号,反斜杠
'let\'s go.' #只使用单引号,外部使用单引号,内部单引号用反斜杠
"let's go. " #单双引号混合使用
- 长字符串
使用三个单引号或者三个双引号将字符串括起来就是长字符串。内部可以同时使用单引号和双引号,而不需要加反斜杠。
- 原始字符串
在原始字符串中,输入的每个字符都会与书写的方式保持一致。表示方式:原始字符串以r开头。
>>> print 'he \n ee' #普通字符串,会直接体现换行符
he
ee
>>> print r'he \n ee' # 原始字符串,打印输入的数据
he \n ee
- 跨越多行
>>> '''dddd
... dddd
... dddd'''
'dddd\ndddd\ndddd' #跨行打印,将换行符作为字符串一部分
>>> '''ddd\
... ddd\
... ddd'''
'ddddddddd' #加上反斜杠,忽略换行符
>>> 1+2+3\
... +4+5
15 #适用于表达式
- 打印字符串
print 'hello', #尾部的逗号,避免print语句自动添加换行符
- 操作
"hello " + str(3) # 不可直接将字符串与数字相加,使用str(3)、repr(3)或反引号。
#repr(x)和反引号将对象转为合法的python表达式。
repr(3+4) #结果为 '7'
#raw_input()和input()的区别在于,前者输入的数据为字符串,后者输入的是python表达式.如,raw_input()/input()之后输入3+4,返回'3+4'/7.
序列
python有6种內建的序列:列表,元组,字符串,unicode字符串,buffer对象和xrange对象。 常用的是列表和元组,主要区别在于列表可以修改,而元组不能修改。所以,列表不可以作为字典的键,而元组可以。 通用序列操作有:索引,分片,加,乘,是否包含。
索引和分片
>>> numbers = [1,2,3,4,5]
>>> numbers[:] #开始索引为空,表示从序列头部开始;结束索引为空,表示到序列尾部
[1, 2, 3, 4, 5]
>>> numbers[-1:] #-1表示最后一个元素位置,左闭右开区间
[5]
>>> numbers[-1:1] #如果开始索引大于结束索引,返回空列表
[]
>>> numbers[0:3:2] #第三个参数表示步长
[1, 3]
>>> numbers[::-2] #步长为负数,表示从右到左。步长不能为0
[5, 3, 1]
>>> numbers[5:1:-2] #步长为负数,表示从右到左。
[5, 3]
序列相加
两种相同类型的序列才可以相加。
>>> [1,2,3] + [4,5]
[1, 2, 3, 4, 5]
>>> 'hello ' + ' world'
'hello world'
序列乘法
>>> (1,2,3) * 3 #3表示重复的次数
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> [None] * 3 #初始化长度为3的列表,None表示这里什么都没有。
[None, None, None]
>>> (None)*3 #元组不可以初始化,因为元组是不可修改的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
其他:成员资格(是否包含),长度,最大/小值,转化
>>> a = ['one', 'two', 'three']
>>> 'one' in a
True #返回bool值
#用于列表
>>> b = [['1','one'], ['2','two'], ['3', 'three']]
>>> ['4', 'four'] in b
False
>>> ['1', 'one'] in b
True
>>> len(b) #长度
3
>>> max(a) #最大值
'two'
>>> min(a) #最小值
'one'
>>> tuple([1,2,3]) #将序列转为元组
(1, 2, 3)
>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> list((1,2,3)) #将序列转为列表
[1, 2, 3]
列表
>>> a=[1,2,3,4,5]
>>> a[1] = -2 #赋值
>>> a
[1, -2, 3, 4, 5]
>>> del a[0] #删除元素
>>> a
[-2, 3, 4, 5]
>>> a[1:] = [-3,-4,-5,-6,-7] #分片赋值,长度可以不等
>>> a
[-2, -3, -4, -5, -6, -7]
>>> a[0:0]=[0,-1] #通过分片赋值来插入元素
>>> a
[0, -1, -2, -3, -4, -5, -6, -7]
>>> a[4:]=[] #通过分片赋值来删除元素,相当于del a[4:]
>>> a
[0, -1, -2, -3]
以下方法都会改变列表本身
- append方法直接修改原参数
- count方法统计元素出现的次数
- extend 列表结尾追加另一个列表
- index查询元素在列表中第一次出现的位置
- insert插入对象到列表
- pop移除元素,默认最后一个
- remove移除列表中某个值的第一个匹配项
- reverse将列表中元素的值反序存放
- sort 在原位置对列表进行排序。参数有cmp,key, reverse
>>> a
[0, -1, -2, -3]
>>> a=[1]
>>> a+[2]
[1, 2]
>>> a
[1]
>>> a.extend([2]) #extend操作的是两个列表
>>> a
[1, 2]
>>> a.append(3) #append追加的是一个值,类似于栈的push方法
>>> a
[1, 2, 3] #a的值修改了
>>> x=[1,2,[1,2]]
>>> x.count(1) #元素1,元素2,元素[1,2]
1
>>> x.index([1,2]) #index查询元素在列表中第一次出现的位置
2
>>> x.insert(3,'hi') #insert插入对象到列表
>>> x
[1, 2, [1, 2], 'hi']
>>> x.pop(0) #pop移除元素,默认最后一个
1
>>> x
[2, [1, 2], 'hi']
>>> x=[1,3,5,2,4]
>>> x.sort(reverse=True) #倒叙排序
>>> x
[5, 4, 3, 2, 1]
>>> x=['qw22','de','3edf', 'w']
>>> x.sort(key=len) #按照元素的长度排序
>>> x
['w', 'de', 'qw22', '3edf']
- 列表赋值
>>> x=[1,3,5,2,4]
>>> y=x # 直接将x复制给y,x和y会指向同一个列表
>>> y.sort()
>>> x
[1, 2, 3, 4, 5]
>>> y
[1, 2, 3, 4, 5]
>>>
>>>
>>> x=[1,3,5,2,4]
>>> y=x[:] #这样才是拷贝一个x的副本,并赋值给y
>>> y.sort()
>>> x
[1, 3, 5, 2, 4]
>>> y
[1, 2, 3, 4, 5]
>>> x=[3,2,5,1]
>>> y=sorted(x) #获取一个已排序的列表副本,方法二
>>> x
[3, 2, 5, 1]
>>> y
[1, 2, 3, 5]
元组
元组不能修改。
>>> () #创建空元组
()
>>> 23, #创建一个元素的元组,逗号必须有
(23,)
>>> (23,) #创建一个元素的元组,逗号必须有
(23,)
>>> x=1,2,3
>>> x
(1, 2, 3)
python笔记之序列的更多相关文章
- python笔记(1)--序列(列表 元组 range)
一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...
- MOOC python笔记(三) 序列容器:字符串、列表、元组
容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...
- python笔记(2)--字符串
一.字符串 字符串是不可变序列,具有序列的公共操作方法,具体操作见python笔记(1)--序列(列表 元组 range) 1.创建字符串 单引号:'Hello , I am Logan ! ' 双引 ...
- 《python基础教程》笔记之 序列通用操作
索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
- python笔记 - day5
python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...
- python笔记之中缀语法和管道实现
python笔记之中缀语法和管道实现 你知道什么是中缀语法吗?你知道python中的中缀操作是什么吗?那你知道操作python也是可以像unix的管道符一样方便吗?那么,废话不说了,直接上代码. cl ...
- python笔记之itertools模块
python笔记之itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生 ...
随机推荐
- 老男孩Python全栈开发(92天全)视频教程 自学笔记06
day6课程内容: tuple(元祖) 创建元祖: tup0=() #没有元素的一个元祖 tup1=(20,)#只有一个元素的元祖 元祖可读,不可修改 Dictionary(字典)#Python里唯一 ...
- hihoCoder 1033 : 交错和 数位dp
思路:数位dp,dp(i, j, k)表示考虑i位数,每位数可以任意取[0~9],并且这i位数的交错和为j,k=1表示前缀全是0(如000456),k=0表示前缀不为0.注意,前缀是否为0是这道题的一 ...
- dfs练习
不给提示,练习. 题意: 蒜头的数学实在是太差了,于是老师把他关到小黑屋让他闭门修炼.老师跟他一张纸,上面一排写着1, 2, 3...N这N个数,中间用空白分隔.老师让他在空白处填上加号或者减号.他让 ...
- java网络编程(2)——UDP与TCP
首先,先介绍这两种协议: UDP:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互 ...
- 分布式mysql中间件(mycat)
1. MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中 ...
- flask中jinjia2模板引擎详解4
接上文 For循环 和其它编程语言一样,for用来编辑列表中的项.下面以一个例子来说明for在flask的jinjia2模板中的使用. 创建一个模板list.html 代码如下{% extends & ...
- 百度地图API-javascript-web地图的应用
html部分的代码 <div class="maxwidth"> <div class="address clearfix"> < ...
- 面向对象的线程池Threadpool的封装
线程池是一种多线程处理形式,预先创建好一定数量的线程,将其保存于一个容器中(如vector), 处理过程中将任务添加到队列,然后从容器中取出线程后自动启动这些任务,具体实现如下. 以下是UML图,展示 ...
- CPLD/FPGA厂商概述 .
随着可编程逻辑器件应用的日益广泛,许多IC制造厂家涉足PLD/FPGA领域.目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:ALTERA,XILINX,Lattice,其中ALTERA和 ...
- 关于linux下的嵌入式文件系统以及flash文件系统选择
嵌入式linux下常见的文件系统 • RomFS:只读文件系统,可以放在ROM空间,也 可以在系统的RAM中,嵌入式linux中常用来作 根文件系统 • RamFS:利用VFS自身结构而形成的内存文件 ...