1、列表获取元素的索引是从0开始,在列表中第N个元素,索引则是N-1
2、列表“分片”:
2.1、从第1个索引开始,在第二个索引之前结束;p[1:3]
2.2、取回的元素为两个索引之差
2.3、列表分片取回的原列表的一个分片(列表),原来的列表并没有改变
2.4、列表的简写;建立整个列表的副本,原表不进行修改,则可使用L[:] 方式
L = ["a","b","c","d","e"] print(L[1:3]) L = ["a","b","c","d","e"] print(L[1:4]) L = ["a","b","c","d","e"] print(L[1]) print(L[1:2])
print(L[:2])
print(L[2:])
print(L[:])
3、 3.1:增加到列表末尾:append()
3.2: 扩展列表 :extend()
3.3: 插入一个元素:insert()
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
L.append("f") # 增加一个元素至列表列尾 print(L) L.insert(2,"A") # 列表中位置插入一个元素 print(L) L.extend(["g","h","l"]) # 扩展列表,列表末尾增加多个元素 print(L) L.append(["j","k"]) # 增加一个列表(本身也是一个元素)至列表中 print(L) L.insert(3,["B","C"]) # 插入一个列表(本身也是一个元素)至列表中 print(L)
删除元素的办法:其中pop(n)会给出这个索引位置的元素,而且会把它从列表中删除。
4 4.1 用remove()删除元素:不用考虑元素的位置
4.2 用del删除元素:利用索引删除元素
4.3 用pop()删除元素:从列表中取出一个元素
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
L.remove("A") # 移除某个元素,不需要考虑元素的位置 del L[2] #利用索引从列表中删除 L.pop() L.pop(8) # 从列表中取出最后一个元素 L_last = L.pop() # 从列表中取出一个元素并赋给变量 print(L_last) print(L)
5、 搜索列表
5.1 查找元素列表是否在列表中 in 关键字
5.2 查找元素在列表中的哪个位置(元素的索引)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print("a" in L ) print('s ' in L) # 判断 元素是否在列表中 L_1 =L if 'a' in L_1: L_a = L_1.remove('a') # 如果元素在列表中,便删除此元素, print(L_a) print(L_1) L_2 =L if 'b' in L_2 : print(L_2.index('b')) # 如果元素在列表中,便找出一个元素位于列表中的位置
6、循环处理列表
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 L = [1,2,3,4,5,6] 2 for i in L: 3 print(i)
7、列表排序
7.1 sotr()会原地修改列表,它会改变你提供的原始列表,并不产生新的列表。
7.2 reverse() 将列表的元素顺序倒过来。
7.2 sort(reverse = True ) 按降序排序。
7.5 所以为一个东西指定一个名字时,只是向同一个东西增加新的标签。
同时也可以将标签移动至全新的一个表。
7.6 我们可以建立一个表的副表,然后对副表进行排序 就不会影响原来表的结构
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
num = [1,3,5,4,2,8,7,9] str = ["a","c","b","f","e"] num.sort() str.sort() print(str) print(num) # sort() 是在原地修改列表,会改变提供的原始列表,而不是创建新的列表 str.reverse() # reverse 它会把列表中元素的顺序倒过来 num.reverse() print(str) print(num) num.sort(reverse= True) # 另外一种办法是向sort()增加了一个参数,直接让它降序排序 print(num) original = [5,4,3,2,1] new = original # new 指向original列表 print(new) new.sort() print(new) print(original) # 对列表已经进行了更改 original = [5,4,3,2,1] new_1 = original[:] # 创建列表的副表 new_1.sort() print(new_1) print(original) # 对原表未进行更改
8、 在python 中,数字与字符串是不可改变的(不能改变的),而列表是可以改变的。有一种不可改变的列表称为元组
9、双重列表:一个元素列表,每个元素本身也是一个列表;数据结构:利用L[][]可以知道每个信息存储的地方。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
jo = [22,33,44] mo = [55,66,77] ko = [88,99,11] classmo = [jo,mo,ko] # 双重列表 print(classmo) for studentment in classmo: print(studentment) print (classmo[2][2])
10、字典就是一种将两个东西关联在一起的方式。键和值,一个字典就是键值对的集合。
列表与字典都可以包含任意类型的条目,都提供了集合中查找条目的方法:
列表是有顺序的,字典是无序的,列表中的元素是用索引访问的,字典中的条目是用键来访问的,
字典中的键是列表的,可进行排序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
phonenumber = {} # 创建一个空的列表 phonenumber["wang"] = "13927400653" # 给列表添加一个值 print(phonenumber) phonenumber = {"cheng": "13845629871"} print(phonenumber) phonenumber["hua"] = "13927400611" phonenumber["jiangzhen"] = "18873478141" print(phonenumber) print(phonenumber.keys()) print(phonenumber.values()) for key in sorted(phonenumber.keys()): # 字典的键是列表格式,可以进行排序 print(key,phonenumber[key]) for value in sorted(phonenumber.values()): # 先对值进行排序 for key in sorted(phonenumber.keys()): if phonenumber[key] == value: print(key,phonenumber[key]) del phonenumber["wang"] print(phonenumber) print ('hua' in phonenumber) # 判断"hua" 是否在列表中 phonenumber.clear() # 使用clear() 删除所有条目 print(phonenumber)