1.定义                                                                                              

  1.数据结构:通过某种方式组织在一起的数据元素的集合。这些数据元素可以说数字或者字符,甚至可以是其他数据结构。在python中,最基本的数据结构是序列。

   2.索引:序列中的每个元素被分配一个序号。注意索引默认从0开始。

  在python中,内建了6中序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。

2.通用序列操作

  所有序列都可以进行某些特定的操作:索引、分片、加、乘、检查某个元素是否属于序列的成员(成员资格)、内建函数(长度、最小值、最大值)。在这里还有一个重要的操作未提及-----迭代,指依次对序列中的每个元素重复执行某些操作,后续会详细分析,这里就不做过多的说明。

2.1索引      

  序列中所有元素都是有编号的----从0开始,可以通过编号进行访问。通过情况下,索引值为正数,但是python中也可以为负数,代表从右开始计数。若为负数时,开头第一位数为-1,而不是0,这样避免了与从左开始的第一个元素重合。

 __author__ = 'zcy'

 greeting='Hello'

 print(greeting[0]);

 print(greeting[-1]);

2.2分片

  分片,个人理解通过指定左右两个数字来,获取其中间对应的值。分片通过冒号隔开两个索引来实现,相当于是索引的升级版。提取时,包含左边的索引,而不包含右边的索引。注意若从左开始,索引也是从0 开始,从右边时,从-1开始。

  在分片中,只要最左边的索引比它右边的晚出现在序列中,结果就是一个空序列。如果分片所得的包含末尾的元素,那么只需置空最后一个索引。

 numbers=[1,2,3,4,5,6,7,8,9,10]
print(numbers[3:6])
print(numbers[0:1])
print(numbers[-5:-1])
print(numbers[-11:0])
print(numbers[-3:])
print(numbers[:3])
print(numbers[:])

  分片的开始和结束都需要指定,而在分片中存在另外一个参数---步长,通常是隐式设置的,默认为1.在分片中我们也可以设置步长,按照设置的步长来遍历序列中的元素。

 numbers=[1,2,3,4,5,6,7,8,9,10]
print(numbers[0:10:1])
print(numbers[0:10:2])
print(numbers[::4])
print(numbers[8:3:-1])
print(numbers[10:0:-2])
print(numbers[0:10:-2])
print(numbers[::-2])

  开始点的元素包括在结果之中,而结束点的元素则不在分片之内。

  当使用一个负数作为步长时,必须让开始点大于结束点。对于一个正数步长,会从序列的头开始向右提取元素,而对于负步长,则是从序列尾部开始向左提取元素。  

2.3序列相加

  使用加运算符可以进行序列的连接操作

 number=[1,2,3]+[4,5,6]
print(number) number1='Hello, '+'world!'
print(number1) number2=[1,2,3]+'world!'
print(number2)

  正如上面截图,若为同意类型时,可以进行连接,否则无法连接,抛出异常。

2.4乘法  

  用序列乘以某个数字,会得到一个新的序列,而在新的序列中,原来序列将被重复乘以这个数。

 print('python,'*5)

 print([2]*10)

 print([None]*10)

2.5成员资格  

  成员资格即检查当前元素是否在当前序列中。若存在,返回true,否则返回false。

str='python'
print('p' in str)
print('a' in str)

2.6长度、最小值和最大值                                                                                                 

  长度:len;最小:min;最大:max

 numbers=[100,20,300]
print(len(numbers))
print(max(numbers))
print(min(numbers))

2.列表:Python的‘苦力’                                                                    

  列表使用于序列的标准操作,是可以修改的。下面通过代码来看一下列表所拥有的特性。

 # 元素复制
number=[1,2,3,4,5,6]
print(number)
number[1]=5
print('元素复制:',number) # 删除元素
del number[1]
print('删除元素:',number) # 分片赋值
number=[1,5]
number[1:1]=[2,3,4]
print('分片赋值:',number) # 追加对象 append
number.append(10)
print('append:',number) # 元素在列表中出现的次数 count
print('count:',number.count(1)) # 将一个列表添加到另一个列表中 extend
a=[1,2]
b=[3,4]
a.extend(b)
print('extend:',a) # 找出摸个元素的索引 index
name=['a','a','c','d','e','f']
print('index:',name.index('a'))
print('index:',name.index('g')) # 将对象插入到列表中 insert
number=[1,2]
number.insert(1,'aa')
print('insert:',number) # 移除列表中的一个元素,默认为最后一个
print('pop:',number.pop()) # 移除列表中某个值的第一个匹配项
x=['a','b','c']
print('remove:',x.remove('a')) # 将列表中元素反向存放 reverse
x=[1,2,3]
x.reverse()
print('reverse:',x) # 列表中元素排序 sort
x.sort()
print('sort:',x) 返回结果:
[1, 2, 3, 4, 5, 6]
元素复制: [1, 5, 3, 4, 5, 6]
删除元素: [1, 3, 4, 5, 6]
分片赋值: [1, 2, 3, 4, 5]
append: [1, 2, 3, 4, 5, 10]
count: 1
extend: [1, 2, 3, 4]
index: 0
File "H:/PythonProject/PythonBasics/bolg.py", line 8, in <module>
print('index:',name.index('g'))
ValueError: 'g' is not in list
insert: [1, 'aa', 2]
pop: 2
remove: None
reverse: [3, 2, 1]
sort: [1, 2, 3]

  append方法,在列表末尾追加新的元素;而inset方法,在列表指定位置新增新的元素

  extend与‘+’区别在于,extend方法返回一个修改的列表,而原始的连接操作,则是返回一个全新的列表

  pop方法是唯一一个即能修改列表又能返回元素的列表方法

3.元组:不可变序列

  元组也是属于序列的一种,但是元组恰恰和列表相反,元组是不可变的,即定义之后,不能再改变元素。创建元组使用小括号,也可以不用,为了美观和便于识别,还是通常会加小括号。在元组中,若不使用括号,即使只有一个元素,也需要加括号,否则视为普通的数字或字符。例如:1,2,3;(1,2,3);42,;(42,)

  tuple,可以将一个序列作为参数转换为元组

  

 print(1,2,3)
print((1,2,3))
print(42,)
print((42,)) number=[1,2,3]
print(number)
print(tuple(number))

4.字符串

  字符串也是属于序列的一种,所有它也拥有序列的一些基本特性。字符串是不可变的,因为分片复制都是不合法的。

    通常格式化字符串使用‘%s’。%s称为转换说明符,标记了需要插入转换值的位置。若需要在字符串中包括百分号,则必须使用%%。

 format='Hello,%s.%s enough for ya?'
values=('world','Hot')
print(format % values) 结果:
Hello,world.Hot enough for ya?

   1.%字符:标记转换说明符的开始

   2.转换标志(可选):如s

   3.最小字段宽度(可选):转换后的字符串至少应该具有指定的宽度,如果是*,则宽度会从值元组中读出

   4.点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。

   5.转换类型:

字符串格式化转换类型
转换类型 含义
d、i   带符号的十进制正数
o 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计算法表示的浮点数(小写)
E 科学计算法表示的浮点数(大写)
f、F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与f形同
G 如果指数大于-4或者小于精度值则和E相同,其他情况与F形同
C 单字符(接受正数或者单字符字符串)
r 字符串(使用repr转换人员python对象)
s 字符串(使用str转换人员python对象)
 from  math import pi

 print('Price of eggs: $%d' % 42)
print('Jexadecimal price of eggs:%x'% 42)
print('%10f' % pi)
print('%10.2f' % pi)
print('%.5s' % 'Fuido van Rossum')
print('%010.2f' % pi) 结果:
Price of eggs: $42
Jexadecimal price of eggs:2a
3.141593
3.14
Fuido
0000003.14

  字符串有很多列表的方法,同时也有特有的方法:

    1.find:在一个字符串中,查找某个字符串,然后其左边的索引,若不存在,返回-1

    2.join:将列表的元素通过某个字符串连接

    3.lower:返回字符串的小写字字母版

    4.replace:返回某个字符串的所有匹配项均被替换之后得到的字符串

    5.split:通过特殊的字符拆分当前字符串,若不提供,默认吧空格做份分隔符

    6.strip:返回去除两侧空格的字符串

    7.tanslate:替换字符串中的某些部分,优势在于可以同时进行多行替换。

5.写在最后

  由于最近时间原因,白天需要忙工作上的事情,偶尔下班回家还需要处理自己的事情,可能更新较为缓慢。写博客的时间,大多是下班之后,自己边查阅书籍和自己的印象来写的,主要是为了加深自己的记忆以及自己动手能力,存在错误的地方,大家多多交流。如果对你有一定的帮助,麻烦点个

Python基础系列----序列(列表、元组、字符串)的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  3. python基础数据类型之列表,元组操作

    一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...

  4. Python - 反向遍历序列(列表、字符串、元组等)的五种方式

    1. reversed() a = [1, 2, 3, 4] for i in reversed(a): print(i) 2. range(len(a)-1, -1, -1) a = [1, 2, ...

  5. python笔记(1)--序列(列表 元组 range)

    一.序列分类 1.可变序列:list 2.不可变序列:tuple,range 二.序列公共操作方法 1.操作和返回值 其中s和t代表同类型序列:n,i,j,k为整数:x为任意类型. 序号 操作 结果 ...

  6. 1.11 Python基础知识 - 序列:元组

    元组(tuple)是一组有序系列,元组和列表是否相似,但是元组是不可变的对象,不能修改.添加或删除元组中的元素,但可以访问元组中的元素 元组的定义: 元组采用圆括号中用逗号分隔的元素 元组的基本操作和 ...

  7. Python基础语法之列表 元组

    1 列表 列表由一系列按照特定顺序的元素组成,其中的元素可以使不同的数据类型,用[ ]来表示列表,用逗号来分割列表中的元素. 1.1 列表操作之切片 a = [1, 2, 3, 4, 5, 6, 7, ...

  8. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

  9. python基础之序列类型的方法——字符串方法

    python基础之序列类型的方法--字符串方法 Hello大家好,我是python学习者小杨同学,经过一段时间的沉淀(其实是偷懒不想更新),我终于想起了自己的博客账号,所以这次带来的是序列方法的后半部 ...

随机推荐

  1. Eureka与zookeeper

    Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程:客户端请求会自动切换到新的Eureka节点:当宕机的服务器重新恢复 ...

  2. Python爬虫学习笔记之微信宫格验证码的识别(存在问题)

    本节我们将介绍新浪微博宫格验证码的识别.微博宫格验证码是一种新型交互式验证码,每个宫格之间会有一条 指示连线,指示了应该的滑动轨迹.我们要按照滑动轨迹依次从起始宫格滑动到终止宫格,才可以完成验证,如 ...

  3. 解决Sublime Install Package的There are no packages available for install问题(channel_v3.json)

    Sublime版本 Sublime Text 3.1.1 Build 3176 自己也尝试了很多次,所以这一解决办法仅是可能解决你的问题 一.解决简要描述 造成的原因大致是 无法通过request去获 ...

  4. 选择排序Selection sort

    顾名思意,就是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来, 顺序放入新数组,直到全部拿完 再简单点,对着一群数组说,你们谁最小出列,站到最后边 然后继续对剩余的无序数组说 ...

  5. Linux中 设置apache,mysql 开机启动

    linux开启启动的程序一般放在/etc/rc.d/init.d/里面,/etc/init.d/是其软连接 mysql设为linux服务 cp /usr/local/mysql5/share/mysq ...

  6. 元类编程--__getattr__, __getattribute__

    #__getattr__, __getattribute__ #__getattr__ 就是在查找不到属性的时候调用 from datetime import date class User: def ...

  7. VM 脚本回快照和开关机

    #Import PowerCLI*Get-Module -ListAvailable PowerCLI* | Import-Module #Resolve login issueSet-PowerCL ...

  8. Java堆内存Heap与非堆内存Non-Heap

    堆(Heap)和非堆(Non-heap)内存     按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的.”“在 ...

  9. JAVA中3种将byte转换为String的方法

    HttpClient 类库中GetMethod类的getResponseBody方法返回的是byte[]类型,要操作起来不方便,我想把它转化成String类型. 查了网上的资料,有说法认为用这种方法比 ...

  10. 【Contest Hunter【弱省胡策】Round #0-Flower Dance】组合数学+DP

    题目链接: http://ch.ezoj.tk/contest/%E3%80%90%E5%BC%B1%E7%9C%81%E8%83%A1%E7%AD%96%E3%80%91Round%20%230/F ...