《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()计算出最大值和最小值即可。

相关文章
|
2月前
|
索引 Python 存储
Python 04 之变量【列表,元组,集合,字典,字符串】
Python 04 之变量【列表,元组,集合,字典,字符串】
55 0
Python 04 之变量【列表,元组,集合,字典,字符串】
|
5天前
|
数据挖掘 数据处理 Python
【亮剑】如何在 Python 中以表格格式打印列表?
【4月更文挑战第30天】本文介绍了Python中以表格格式打印列表的三种方法:1) 使用字符串格式化,适用于简单场景;2) 使用prettytable库,适合需要更多格式化选项的情况;3) 使用pandas库,适用于处理大量数据和复杂分析。根据需求选择合适的方法来展示数据。
|
7天前
|
索引 Python
python【列表】增删改查
python【列表】增删改查
|
11天前
|
API Python
[AIGC] Python列表([])和字典({})常用API介绍
[AIGC] Python列表([])和字典({})常用API介绍
|
11天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
12天前
|
算法 数据挖掘 数据处理
使用 Python 循环创建多个列表
在Python中,动态创建多个列表对于数据处理和算法实现十分有用。本文介绍了四种方法:1) 列表推导式,如创建偶数和奇数列表;2) 使用循环和`append()`,示例为生成斐波那契数列;3) 结合字典与循环,按条件(如正负数)分组;4) 列表生成器,用于一次性生成多组随机数列表。这些方法有助于提高代码效率和可读性。
20 1
|
12天前
|
存储 Python
Python 基于列表实现的通讯录管理系统(有完整源码)
Python 基于列表实现的通讯录管理系统(有完整源码)
7 0
|
19天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
68 0
|
19天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
20天前
|
存储 索引 Python
python学习5-列表的创建、增删改查、排序
python学习5-列表的创建、增删改查、排序