Python基础系列----序列(列表、元组、字符串)

1.定义                                                                                              

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

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

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

2.通用序列操作

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

2.1索引      

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

1 __author__ = ‘zcy‘
2
3 greeting=‘Hello‘
4
5 print(greeting[0]);
6
7 print(greeting[-1]);

2.2分片

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

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

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

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

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

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

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

2.3序列相加

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

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

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

2.4乘法  

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

1 print(‘python,‘*5)
2
3 print([2]*10)
4
5 print([None]*10)

2.5成员资格  

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

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

2.6长度、最小值和最大值                                                                                                 

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

1 numbers=[100,20,300]
2 print(len(numbers))
3 print(max(numbers))
4 print(min(numbers))

2.列表:Python的‘苦力’                                                                    

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

 1 # 元素复制
 2 number=[1,2,3,4,5,6]
 3 print(number)
 4 number[1]=5
 5 print(‘元素复制:‘,number)
 6
 7 # 删除元素
 8 del number[1]
 9 print(‘删除元素:‘,number)
10
11 # 分片赋值
12 number=[1,5]
13 number[1:1]=[2,3,4]
14 print(‘分片赋值:‘,number)
15
16 # 追加对象   append
17 number.append(10)
18 print(‘append:‘,number)
19
20 # 元素在列表中出现的次数 count
21 print(‘count:‘,number.count(1))
22
23 # 将一个列表添加到另一个列表中 extend
24 a=[1,2]
25 b=[3,4]
26 a.extend(b)
27 print(‘extend:‘,a)
28
29 # 找出摸个元素的索引 index
30 name=[‘a‘,‘a‘,‘c‘,‘d‘,‘e‘,‘f‘]
31 print(‘index:‘,name.index(‘a‘))
32 print(‘index:‘,name.index(‘g‘))
33
34 # 将对象插入到列表中  insert
35 number=[1,2]
36 number.insert(1,‘aa‘)
37 print(‘insert:‘,number)
38
39 # 移除列表中的一个元素,默认为最后一个
40 print(‘pop:‘,number.pop())
41
42 # 移除列表中某个值的第一个匹配项
43 x=[‘a‘,‘b‘,‘c‘]
44 print(‘remove:‘,x.remove(‘a‘))
45
46 # 将列表中元素反向存放  reverse
47 x=[1,2,3]
48 x.reverse()
49 print(‘reverse:‘,x)
50
51 # 列表中元素排序 sort
52 x.sort()
53 print(‘sort:‘,x)
54
55
56 返回结果:
57 [1, 2, 3, 4, 5, 6]
58 元素复制: [1, 5, 3, 4, 5, 6]
59 删除元素: [1, 3, 4, 5, 6]
60 分片赋值: [1, 2, 3, 4, 5]
61 append: [1, 2, 3, 4, 5, 10]
62 count: 1
63 extend: [1, 2, 3, 4]
64 index: 0
65   File "H:/PythonProject/PythonBasics/bolg.py", line 8, in <module>
66     print(‘index:‘,name.index(‘g‘))
67 ValueError: ‘g‘ is not in list
68 insert: [1, ‘aa‘, 2]
69 pop: 2
70 remove: None
71 reverse: [3, 2, 1]
72 sort: [1, 2, 3]

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

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

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

3.元组:不可变序列

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

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

  

1 print(1,2,3)
2 print((1,2,3))
3 print(42,)
4 print((42,))
5
6
7 number=[1,2,3]
8 print(number)
9 print(tuple(number))

4.字符串

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

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

1 format=‘Hello,%s.%s enough for ya?‘
2 values=(‘world‘,‘Hot‘)
3 print(format % values)
4
5
6 结果:
7 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对象)

 1 from  math import pi
 2
 3 print(‘Price of eggs: $%d‘ % 42)
 4 print(‘Jexadecimal  price of eggs:%x‘% 42)
 5 print(‘%10f‘ % pi)
 6 print(‘%10.2f‘ % pi)
 7 print(‘%.5s‘ % ‘Fuido van Rossum‘)
 8 print(‘%010.2f‘ % pi)
 9
10 结果:
11 Price of eggs: $42
12 Jexadecimal  price of eggs:2a
13   3.141593
14       3.14
15 Fuido
16 0000003.14

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

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

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

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

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

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

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

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

5.写在最后

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

时间: 2025-01-03 22:19:40

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

python 学习笔记 二 序列, 列表, 元组, 字符串

序列 序类是一个集合概念, Pthon包括六种内建序列: 列表, 元组, 字符串, Unicode字符串, buffer对象和xrange对象. 其中, 我们最长用的要数前三个. 通用序列操作 1. 索引(indexing) 序列的所有元素都是有编号的(从0开始...), 这些元素可以通过编号访问, 如: >>> greeting = 'Hello' >>> greeting[0] 'H' 使用负数索引(从-1开始...)是从右边开始的: >>> gr

python基础03 序列

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢thunder424纠错 sequence 序列 sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的元素.元素还可以是另一个序列,以及我们以后要介绍的其他对象. 序列有两种:tuple(定值表: 也有翻译为元组

python基础系列教程——Python3.x标准模块库目录

python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct:将字节解析为打包的二进制数据 codecs:注册表与基类的编解码器 数据类型 datetime:基于日期与时间工具

Python学习系列(三)(字符串)

Python学习系列(三)(字符串) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了,可见本人的坚持精神不佳,本系列没有任何目的,纯属业余学习,或者说是一时兴趣所致.通过本文,能够学习字符串的基本操作,日积月累,多多练习,学到了,会用了才是王道. 一.基本概念 1,关于转义问题 1)"''"方式: >>> s="Hello 'Jack'--" >>> print s Hello 'Jack'--

.Net程序员之Python基础教程学习----列表和元组 [First Day]

一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所以的范围是-N~N-1之间,超过这个范围就会提示 IndexError:  index out of range >>> greeting ='Hello world' >>> print greeting Hello world >>> print gr

python基础系列二:列表

#-----------------------------------------创建列表------------------------------------------# 定义# 直接定义nums = [1,2,3,4,5] # 通过range函数构造,python2 和python3 版本之间的差异:# python3 用的时候才会去构造nums = range(1,101) # 列表嵌套# 注意和C语言中数组的区别,是否可以存放不同的数据类型nums = [1,2,"ab"

python基础教程002_列表与元组

1.列表 定义: edward = ['Edward Gumdy',42] 描述edward姓名与年龄的列表 edward = [] 空列表 操作: 索引: greeting = 'hello' print(greeting = [0]) 'h' print(greeting = [-1]) 'o' print(greeting = [1]) 'e' 可与函数组合 print(raw_input("year:')[3]) Year:2005 '5' 例: #月份 months = ['Janua

python基础知识之列表、元祖、字典/字符串。

基础知识之列表: 列表用 [  ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除. 常用用法如下 names = ['zhang', 'zhuang', ['alx', 'bob'], 'chen', 'qiang'] print(len(names)) # 获取列表长度 print("aaffaa".count("a")) # 获取a在字符串出现的次数 print(names[1:3]) # 切片 print(names[-1]) # 获取最后

python基础系列(二)----各数据类型的详细方法描述

python基础 一.整数 1 class int(object): 2 """ 3 int(x=0) -> int or long 4 int(x, base=10) -> int or long 5 6 Convert a number or string to an integer, or return 0 if no arguments 7 are given. If x is floating point, the conversion truncate