列表:任意對象的序列組成,把值放入方括號[] 就可以創建列表
names = ['宋江','吳用','盧俊義','林沖']
列表使用從0開始的整數索引 使用索引運算符可以訪問並修改列表中的項:
a = names[0] names[0] = '晁蓋'; print(names);
輸出結果:
['晁蓋', '吳用', '盧俊義', '林沖']
如果想要在列表末尾追加新的項 使用append方法:
names.append('花榮');
輸出結果:
['晁蓋', '吳用', '盧俊義', '林沖', '花榮']
如果想要在任意位置插入新的項 使用insert方法:
names.insert(2,'武松');
輸出結果:
['晁蓋', '吳用', '武松', '盧俊義', '林沖', '花榮']
使用切片運算符可以提取一個子列表或者對子列表進行重新賦值:
b = names[0:2]; #提取子列表 c = names[3:]; d = names[:4]; print(b,c,d)
輸出結果 :
['晁蓋', '吳用']
['盧俊義', '林沖', '花榮']
['晁蓋', '吳用', '武松', '盧俊義']
names[0:2]= ['魯智深','秦明','關勝']; #重新賦值
輸出結果:
['魯智深', '秦明', '關勝', '武松', '盧俊義', '林沖', '花榮']
使用連接用算符 + 可以連接列表:
a = [1,2,4,5] +[3,6,7,8];
print(a);
輸出結果
[1, 2, 4, 5, 3, 6, 7,8]
創建一個空的列表有兩種方式:
① names = [];
②names = list[];
列表中可以包含任意種類的python對象 包括其他列表在內 如:
a = [1, '矮腳虎', 7, 8, ['水滸英雄',108,'36天罡',['拼命三郎', '石秀'],'72地煞'], 9, 10]
打印輸出:
[1, '矮腳虎', 7, 8, ['水滸英雄',108,'36天罡',['拼命三郎', '石秀'],'72地煞'], 9, 10]
嵌套的列表中包含的項 需要使用多次索引運算符才能訪問 :
a[1] a[4][1] a[4][3][1];
輸出結果:
矮腳虎
108
石秀
重點理解:
使用程序讀取在命令行上指定的一個文件中的數值列表 然後輸出其中的最大值最小值,程序如下:
import sys; #使用import語句 從python庫中加載system模塊(sys模塊包含系統對應的功能) 此處目的是獲取命令行參數 if len(sys.argv) !=2 : #如果命令行參數不爲2 print ("please supply a filename"); raise SystemExit(1) #異常 f = open(sys.argv[1]); #第二個參數應該是一個文件 lines = f.readlines(); #讀取整個文件 lines = lines[0] #取出列表中的數據 f.close(); //將列表中的所有數據進行循環並且應用float函數 fvalues = [float(line) for line in lines] print(fvalues); print(min(fvalues)); print(max(fvalues));
打印輸出:
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 0.0]
0.0
9.0
for in 方法 構造新的列表fvalues 這種功能特別強大的列表構造方法 叫做列表包含
還可以使用for in 方法 簡化上面的代碼
fvalues = [flocat(line) for line in open(sys.argv[1])];
輸出結果:
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 0.0]
0.0
9.0
sys.argv[1] 實際上是在命令行 上傳入的 是一個文件名 該文件中數據結果:
1
2
3
4
5
6
7
8
9
0
總結:
1,列表的組成 [] 和 list[] 聲明;
2,列表可使用 索引運算符,切片運算符提取子列表 並且能給子列表重新賦值, 可使用+直接連接 列表中可包含列表元素
3,列表中追加 appen 和 插入 insert方法
3, import sys 加載系統模塊
4,sys.argv 獲取命令行的參數
5,[function for line in lines ] 列表包含 列表構造方法