如下是李刚老师《疯狂python讲义》的学习笔记
如有侵权,联系删除
努力是信仰,坚持是脚步,代码改变世界!
python的序列:我感觉序列就是有索引的用来存放数据的数据结构,字符串,列表,元组都属于序列。
在具体的编程过程中,如果只是固定地保存多个数据项,则不需要修改它们,此时就应该元组,反之,就应该使用列表。
创建列表和元组:列表: ['crazyit',20,'python'] 元组:('crazyit',20,'python')
列表和元组的通用方法:使用[ ]来索引某些元素,python中()好像都是用于函数输入
加法+,同类才能相加,相加就是两者进行左右拼接。
乘法*,就是进行数量个该元素的左右拼接
注意:('th') 和 'th' 是一样的只是字符串,写成元组形式必须: ('th',) 加上逗号
in/not in : 判断元组和列表是否包含某个元素 print('a' in ('a','b'))
长度len(),最大值max(),最小值(),这里比较最大值最小值要求元组或者列表中的数据是相同类型,且可以比较大小。
序列封包和序列解包:
程序把多个值赋给一个变量时,python会自动将多个值封装成元组。这种功能被称为序列封包。
vals = 10,20,30 此时,vals就是一个元组,每个元素就是10,20,30
程序允许将序列(元组或者列表)直接赋给多个变量,此时序列的各元素会被依次赋值给每个变量(要求序列的元素个数和变量个数相等)。这种功能成为序列解包。
a,b,c = vals 这个过程就是元组解包,此时 a = 10,b=20,c=30。列表也可以进行解包过程
同时进行序列封包和序列解包机制: x,y,z = 10,20,30
部分解包,*,: first,second,*rest = rang(10), 此时first = 1, second = 2, rest = [3,4,,,10],这里为什么是列表呢???
使用列表: 列表实际上可以看作是元组的加强版,可以对其中的元素进行操作。虽然大部分时候都可以使用列表来代替元组,但如果程序不需要修改列表所包含的元素,那么使用元组代替列表会更安全。
创建列表:[] 以及 list()函数:将元组,range等对象转换为列表,,,同理,tuple()函数,将列表,区间等对象转换为元组。
增加列表元素:append()函数:将添加的东西都看作一个元素,添加到列表内,这样就形成了列表套列表,列表套元组的现象。
extend()函数:将要添加的东西,都看成一个个元素,添加到列表末尾,拼接。
insert(id,元素)函数:在某id位置插入元素(元组,或者列表)
删除列表元素:del 注意这个使用方法是如 del vals[slice] ,而其他函数使用方法 vals.append()。
del还可用于删除普通变量 del name
remove()函数,删除第一个找到的要删除的元素进行删除
clear()函数,清空列表中的所有元素。
修改列表元素:可直接通过a_list[id] = 新元素 进行列表元素修改
可直接通过a_list[slice] = 新元素 进行列表修改,,这个方法使用灵活的话,实现了 插入,删除,功能。
列表的其他使用方法: dir(list) 就能看到。
使用字典:字典就像人为创建的两组数据,第一组数据和第二组数据之间一一对应,第一组数据就叫做key,第二组数据叫做value,数据形式各种都有
创建字典{},如{key1:value1,key2:value2},这里需要注意的是好像这种形式key不能为列表形式,可以为元组形式。????
创建字典dict(),这个函数的输入可以是列表或者元组作为key-value对,同时这些列表或者元组只能包含两个元素
key相当于value的指针,程序对字典的操作都是基于key的,指针索引的话还是固定形式[key]。
增加新key-value对,只需要为不存在的key幅值即可, >>>score[不存在key] = value
删除key-value对, >>> del scores[key]
判断字典是否包含某个key >>> key in score
注意:列表不允许对不存在的索引赋值;但字典可以直接对不存在的key赋值。
字典的常用方法 dir(dict)
使用字典格式化字符串
>>> temp = '书名是:%(name)s'
>>>book = {'name':'疯狂python'}
>>>print(temp % book)