1. 列表 LIST
定义列表
alist=['Lydia','Miranda','Tony','Cody','Lorries'] print(aList)
['Tom', 'Ruby', 'Eddie', 'Eric']
切片操作
取多个元素。 序列类型(包括string, list, tuple) 是其元素被顺序放置的一种数据结构类型,这种方式允许通过指定下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素。( [],[:],[::])
- 取一个元素 (以aString为列): 从左向右,以0,1,2,3为序; 从右向左,以-1,-2,-3为序。
alist[0] # 返回值: Lydia alist[3] # 返回值:'Cody' alist[-1] # 返回值:'Lorries' alist[-4] # 返回值:'Miranda'
- 取多个元素
aList = ['Lori', 'Martins', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty'] print(aList[1:4]) # 自左向右,从0计数。取下标1至下标4之间的数字,包括1,不包括
['Martins', 'Marcus', 'Fayes']
print(aList[1:-1]) # 取下标1到下标-1的值,不包括-1. -1是ketty
['Martins', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda']
print(aList[0:3]) print(aList[:3] # 这两种表达相同,0可以忽略
['Lori', 'Martins', 'Marcus']
print(aList[3:]) #如果想取到最后一个值,不能写-1,只能这么写 print(aList[3:-1]) #这样下标-1的元素不会被包括
['Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty']
['Fayes', 'Anthony', 'Paul', 'Miranda']
- 切片操作的扩展 - 步长索引
print(aList[::2]) # 第三个索引值2被用作步长参数,代表每隔1个元素就取一下
['Lori', 'Marcus', 'Anthony', 'Miranda']
print(aList[::-1]) # 效果等同“reverse”操作
['Ketty', 'Miranda', 'Paul', 'Anthony', 'Fayes', 'Marcus', 'Martins', 'Lori']
追加 - append
aList.append('追加') print(aList)
['Lori', 'Martins', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', '追加']
插入 - insert
aList.insert(2,"插入") #不能批量insert print(aList)
['Lori', 'Martins', '插入', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', '追加']
替换修改
aList[1]="修改" #替换原来的Martins print(aList)
['Lori', '修改', '插入', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', '追加']
删除
- 方法1 - list. remove("...")
aList.remove("Lori") #删除方法1 print(aList)
['修改', '插入', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', '追加']
- 方法2 - del
del aList[0] #删除方法2 print(aList)
['修改', '插入', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', '追加']
- 方法3 - list.pop()
aList.pop() #删除方法3,默认最后一位 print(aList)
['Lori', '修改', '插入', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty']
扩展(合并)- list.extend(list1)
bList = ['Wayne','Marcus'] aList.extend(bList) print(aList)
返回值 ['Lori', 'Martins', 'Marcus', 'Fayes', 'Anthony', 'Paul', 'Miranda', 'Ketty', 'Wayne', 'Marcus']
获取下标 list.index
print(aList.index("Marcus")) #获取下标 print(aList[aList.index("Marcus")]) #应用:对应获取下标的打印元素
2
Marcus
统计 list.count
print(aList.count("Marcus"))
2
排序 list.sort
aList.sort() print(aList)
['Anthony', 'Fayes', 'Ketty', 'Lori', 'Marcus', 'Marcus', 'Martins', 'Miranda', 'Paul', 'Wayne']
反转 list.reverse
aList.reverse() #翻转 print(aList)
['Wayne', 'Paul', 'Miranda', 'Martins', 'Marcus', 'Marcus', 'Lori', 'Ketty', 'Fayes', 'Anthony']
拷贝
- 浅copy
aList1 = aList.copy() aList[2]='MARCUS WOO' aList[4][0]='alexander' print(aList) print(aList1) # 浅copy, 只copy第一层。这是由于list的存储方式导致的,alexander会改的原因是因为具有相同的内存地址。而第一层不是。
alist 返回值 》》》 ['Lori', 'Martins', 'MARCUS WOO', 'Fayes', ['alexander', 'pete'], 'Anthony', 'Paul', 'Miranda', 'Ketty']
alist1 返回值 》》》'Lori', 'Martins', 'Marcus', 'Fayes', ['alexander', 'pete'], 'Anthony', 'Paul', 'Miranda', 'Ketty']
- 深拷贝 - deepcopy 互相完全独立
import copy aList = ['Lori', 'Martins', 'Marcus', 'Fayes', ['alex','pete'],'Anthony', 'Paul', 'Miranda', 'Ketty'] aList2 = copy.deepcopy(aList) #最终两个list完全独立 aList[2]='MARCUS WOO' aList[4][0]='alexander' print(aList) print(aList2) # 深拷贝
alist 返回值 》》》['Lori', 'Martins', 'MARCUS WOO', 'Fayes', ['alexander', 'pete'], 'Anthony', 'Paul', 'Miranda', 'Ketty']
aList2 返回值
['Lori', 'Martins', 'Marcus', 'Fayes', ['alex', 'pete'], 'Anthony', 'Paul', 'Miranda', 'Ketty']
循环
for i in aList:
print(i)
Lori
Martins
Marcus
Fayes
Anthony
Paul
Miranda
Ketty
2. 元组 TUPLE
元祖是只读列表, 即一旦创建不可修改。 列表用 [], 而元组用()。针对元祖,只可以用count 和 index
aTuple = ('alex','jack')