列表与字典学习笔记
python中要想用对象做某种处理,需要这个对象的名字(变量名),然后是一个点,再后面是要对对象做的操作。如要向friends列表zhui追加一个元素,就要写成: friends.append(something)
列表:
列表可以包含python能存储的任何类型的数据(数字,字符串、对象,甚至其他列表)
列表中的元素并不要求元素是同种类型或同一种东西,一个列表中可以同时包含不同类型
列表元素索引(index)号从0开始
建 增 插 提 改 搜 删 排序 切(分片)
建 :
创建空列表 如 list=[]
增:
append() 追加(把一个东西加在最后面)元素
扩展:
extend() 在列表末尾增加多个元素(注意其方法中圆括号中是一个列表,列表有一个中括号)
插:
insert()会在列表某个位置增加一个元素,原来那个位置的元素会向后推一个位置,后面元素依次向后移一个位置。letters.insert(2,'c') 向letters列表的索引2位置中插入'c'
提:
list[] 利用中括号中按索引号提取列表元素
删:
remove()从列表删除指定元素,后面元素向前移一个位置(如没有该元素会报错)
del用索引从列表中删除元素 如del letters[3] 删除letters列表中索引3(第4个)的元素
pop()从列表中弹出最后一个元素,原列表删除该元素,另外该方法可以提供一个索引
括号中没有参数,pop()返回最后一个元素,并把它从列表中删除。有参数,pop(n)会给出这个索引位置上的元素,而且会把它从列表中删除。
搜:
要找出某个元素是否在列表中,可以用in关键字,如 if 'a' in letters:
查找索引
index()可以找出一个元素位于列表中的位置,同remove()一样没有找到这个元素会报错
letters.index('d') 表示列表letters中元素d的索引号
列表可作循环迭代处理
排序:
列表是一种有顺序的集合
sort()会自动按字母顺序对字符串从小到大排序,数字同理
注意sort()会在原地修改列表,会改变原始列表,变为一个有序列表。如需要保留原列表,需要创建列表副本。
而函数sorted()会得到一个有序列表副本,即不改变原列表
列表分片(切):
对列表分片时取回的是另一个(通常更小的)列表,对其称为分片。原来的列表没有改变。这个分片是原列表的部分副本
分片简写:
与for循环中range()类似,分片获取元素时,会从第一索引开始,在达到第二个索引之前停止。 取回项数总是两个索引数之差
如想要分片开始部分,使用冒号后面是想要的元素个数
如果没有放入任何数只有冒号,就可以得到整个列表的副本,对副本修改不会影响原列表
改:
可用索引来修改某个列表元素,但不能用索引向列表增加新的元素
可改变(mutable)与不可改变(immutable)
python中
不可改变的:数字、字符串
可改变的:列表
元组:不可改变的列表,不能对其完成排序,也不能追加和删除元素
数据结构:一种在程序中收集、存储或表示数据的方法。实际上数据结构表示程序中数据的组织方式。
字典:
字典中的每个项(item)都有一个键和一个值,合起来称为键值对,字典就是一些键值对的集合。
建:
dict={}
增:
dict[''a'']='1234'
使用方括号指定要找的条目的键。整个字典本身还是被包裹在花括号中。
字典与列表相似点:
字典和列表都可以包含任意类型的条目(包括列表和字典),你可以有一个包含数字、字符串、对象甚至其他集合的集合
两者都提供了在集合中查找条目的方法(列表用索引,字典用键)
不同点:
列表有顺序,按顺序添加就会保持顺序,还可以对列表排序
字典是无序的
列表和字典也属对象,故列表和字典都有使用点号表示法来使用的方法。
key()方法会列出字典中所有的键(输出为列表)
values()方法会列出字典中所有的值(输出为列表)
字典的键只可以使用不可变类型(布尔、整数、浮点数、字符串和元组),不能用列表或字典(可变型)来当作键
删除:
del dict['a'] 删除字典中一个条目
clear()方法会删除字典所有条目(清空字典)
使用in确定某个键在字典中是否存在