python参考手册 第4版 修订版_《Python参考手册(第4版•修订版)》——1.6 列表-阿里云开发者社区...

本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.6节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.6 列表

列表是任意对象组成的序列。把值放入方括号中就可以创建列表,如下所示:

names = [ "Dave", "Mark", "Ann", "Phil" ]

列表使用从0开始的整数索引,使用索引运算符可以访问并修改列表中的项:

a = names[2] # 返回列表的第3项"Ann"

names[0] = "Jeff" # 将第1项改为"Jeff"

要将新项追加到列表末尾,可使用append()方法:

names.append("Paula")

要将一项插入到列表中,可使用insert()方法:

names.insert(2, "Thomas")

使用切片运算符可以提取一个子列表或对子列表重新赋值:

b = names[0:2] # 返回[ "Jeff", "Mark" ]

c = names[2:] # 返回[ "Thomas", "Ann", "Phil", "Paula" ]

names[1] = 'Jeff' # 将names中的第2项替换为'Jeff'

names[0:2] = ['Dave','Mark','Jeff'] # 将列表的头两项替换为右边的列表

使用加号(+)可以连接列表:

a = [1,2,3] + [4,5] # 结果是[1,2,3,4,5]

创建一个空列表有两种方式:

names = [] # 一个空列表

names = list() # 一个空列表

列表可以包含任意种类的Python对象,包括其他列表在内,如下例所示:

a = [1,"Dave",3.14, ["Mark", 7, 9, [100,101]], 10]

嵌套列表中包含的项需要使用多次索引操作才能访问到,例如:

a[1] # 返回 "Dave"

a[3][2] # 返回 9

a[3][3][1] # 返回 101

程序清单1-2中的程序展示了列表的一些高级特性,该程序会读取在命令行上指定的一个文件中的数值列表,然后输出其中的最大值和最小值。

程序清单1-2 列表的高级特性

import sys # 加载sys模块

if len(sys.argv) != 2: # 检查命令行参数的数量:

print "Please supply a filename"

raise SystemExit(1)

f = open(sys.argv[1]) # 命令行上的文件名

lines = f.readlines() # 将所有行读取到一个列表中

f.close()

# 将所有输入值从字符串转换为浮点数

fvalues = [float(line) for line in lines]

# 打印最小值和最大值

print "The minimum value is ", min(fvalues)

print "The maximum value is ", max(fvalues)

该程序的第一行使用import语句从Python库加载sys模块。加载该模块的目的是获得命令行参数。

open()函数使用了一个文件名,该文件名是以命令行选项的形式提供的并保存在列表sys.argv中。readline()方法将所有输入行读取到一个字符串列表中。

表达式[float(line) for line in line]通过对列表lines中的所有字符串进行循环,并对每个元素应用函数float(),从而构造一个新列表。这种功能特别强大的列表构造方法叫做列表推导(list comprehension)。因为你还可以使用for循环来读取文件中的行,所以可以将上面程序中转换值的代码简化为一条语句:

fvalues = [float(line) for line in open(sys.argv[1])]

将输入行转换成一个浮点数列表后,再使用内置函数min()和max()计算出最大值和最小值即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值