1.定义 python
1.数据结构:经过某种方式组织在一块儿的数据元素的集合。这些数据元素能够说数字或者字符,甚至能够是其余数据结构。在python中,最基本的数据结构是序列。算法
2.索引:序列中的每一个元素被分配一个序号。注意索引默认从0开始。数据结构
在python中,内建了6中序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。app
2.通用序列操做 ide
全部序列均可以进行某些特定的操做:索引、分片、加、乘、检查某个元素是否属于序列的成员(成员资格)、内建函数(长度、最小值、最大值)。在这里还有一个重要的操做未说起-----迭代,指依次对序列中的每一个元素重复执行某些操做,后续会详细分析,这里就不作过多的说明。
函数
2.1索引 ui
序列中全部元素都是有编号的----从0开始,能够经过编号进行访问。经过状况下,索引值为正数,可是python中也能够为负数,表明从右开始计数。若为负数时,开头第一位数为-1,而不是0,这样避免了与从左开始的第一个元素重合。spa
1 __author__ = 'zcy' 2 3 greeting='Hello' 4 5 print(greeting[0]); 6 7 print(greeting[-1]);
2.2分片 3d
分片,我的理解经过指定左右两个数字来,获取其中间对应的值。分片经过冒号隔开两个索引来实现,至关因而索引的升级版。提取时,包含左边的索引,而不包含右边的索引。注意若从左开始,索引也是从0 开始,从右边时,从-1开始。code
在分片中,只要最左边的索引比它右边的晚出如今序列中,结果就是一个空序列。若是分片所得的包含末尾的元素,那么只需置空最后一个索引。
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.写在最后
因为最近时间缘由,白天须要忙工做上的事情,偶尔下班回家还须要处理本身的事情,可能更新较为缓慢。写博客的时间,大可能是下班以后,本身边查阅书籍和本身的印象来写的,主要是为了加深本身的记忆以及本身动手能力,存在错误的地方,你们多多交流。若是对你有必定的帮助,麻烦点个赞!