python中的列表
列表:任意对象的序列组成,把值放入方括号[] 就可以创建列表
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 ] 列表包含 列表构造方法
转载于:https://blog.51cto.com/hongdachun/1760008