3.3 列表三(操作符、BIF內置方法、複製、列表推導式)
1. 列表的常用操作符
1)比較操作符
print("比較操作符")
list1 = [123]
list2 = [456]
print(list1 > list2) #一個元素的列表比較, 打印Flase
list1 = [123,456]
list2 = [234,123]
print(list1 > list2) #兩個元素的列表比較, 打印False, 和字符串的比較相同,比較ASSIC
2)邏輯操作符 and or not
print("邏輯操作符")
list3 = [123,456]
result = list1 < list2 and list1 == list3
print(result) # 打印結果爲True
3)連接操作符 +
print("連接操作符")
list4 = list1 + list2
print(list4) #兩個列表的,拼接, 但是儘量使用extend語法來添加一個列表
4)重複操作符 *
print("重複操作符")
print(list3 *3) #list3 重複3次
list3 *= 3 #list3 倍增3次
print(list3)
list3 *= 5 #list3 再繼續倍增3次
print(list3)
5)成員關係操作符
print("成員關係操作符")
print(123 in list3) #返回True
#對於列表裏面的列表裏的元素
list5 = [1,2,3, ['weivid',2,344],4] #weivid是列表中列表中的元素
print('weivid' in list5) #返回False
print('weivid' in list5[3]) #返回True
#與訪問數組的二維類似
print(list5[3][1]) #訪問列表中列表中的元素。打印weivid
2. 列表類型的內置方法BIF
查看內置的BIF方法
print(dir(list))
1)count方法 計算參數再列表中出現的次數
print(list3)
count1 = list3.count(123)
print(count1) #打印15次,123在list3 中出現的參數
2)index方法 返回參數在列表中位置
index1 = list3.index(123)
print(index1) #打印123出現的第一個位置,打印 0
index2 = list3.index(123, 3,7)
print(index2) #打印 4 , 表示在第4個和第8 個位置之間,出現123 的位置是第5 個
3)reverse方法 將整個列表翻轉
print(list5)
list5.reverse()
print(list5) #順序會翻轉
4)sort 方法 用指定方式對列表排序,默認從小到大
sort(func,key,reverse=False) 默認
list6 = [1,3,4,523,5,56,77,51]
print(list6)
list6.sort()
print(list6) #從小到大排序
#從大到小排序
list6.sort(reverse = True)
print(list6) #從大到小排序
5)copy()方法 和使用分片拷貝複製的方法是一樣的
print("copy函數")
print(list6)
list6copy = list6.copy() #複製
print(list6copy)
6)clear()方法 用於清空列表中的元素,得到一個空列表
print("clear函數")
print(list6)
list6.clear()
print(list6) #空列表
3. 列表的拷貝
上一講中最後也提到了列表的拷貝,分片
使用分片創建列表的拷貝
list6 = [1,3,4,523,5,56,77,51]
print('\n',list6)
list7 = list6[:] #拷貝另一個列表,兩份
list8 = list6 #換一個列表標籤,並沒有複製
list6.sort()
print(list7)
print(list8) #list8也跟着sort對list排序後的列表改變了
4. 列表推導式/列表解析
靈感取自函數式編程語言 Haskell,可以動態的創建列表
[表達式 for A in B]
print("列表推導式")
list0 = [i*i for i in range(10)]
print(list0) #打印0——9的平方數
也可以寫成:
"""
list0 = []
for i in range(10):
list0.append(i*i)
"""
練習題
1.將下面的的列表中的weivid修改爲wangwei
list1 = [1,[1,2,[‘weivid’,0,2]],3,2,1,3,43]
list1 = [1,[1,2,['weivid',0,2]],3,2,1,3,43]
list1[1][2][0] = 'wangwei'
2. 對一個列表驚醒順序排序和逆序排序,可以使用什麼方法
順序排序可以使用 列表名.sort()
逆序排序可以使用 列表名.sort(reverse = True)或者
列表名.sort() 列表名.reverse()
3. 用程序還原下列表 列表推導式
list1 = [(x,y) for x in range(10) for y in range(10) if x%2 == 0 if y%2 != 0]
list1 = []
for x in range(10):
for y in range(10):
if x%2 == 0:
if y%2 != 0:
list1.append((x,y))
print(list1)