网站首页 > 基础教程 正文
列表是可变序列,通常用于存放同类项目的集合(其中精确的相似程度将根据应用而变化)。
列表的使用方式是把元素放在中括号中,元素之间以逗号分隔, 语法为:
列表名称=[元素1,元素2,…… ]
各个元素数据类型可以相同, 也可以不同。
获取元素值的方法是将下标值放在中括号内,下标值从0 开始计数: 第一个元素值下标值为0 ,第二个元素值下标值为l ,依此类推。下标值不可以超出列表的范围,否则执行时会产生错误。
下标值可以是负值,表示由列表的最后向前取值,"-1"表示最后一个元素,"-2"表示倒数第二个元素,依此类推。同理,负数下标值也不可以超出列表的范围,否则执行时会产生错误。
list = [["Joe","1234"],["Mary","abcd"],["David","5678"]]
print(list[1]) #['Mary', 'abcd']
print(list[1][1]) #abcd
class list([iterable])
可以用多种方式构建列表:
1.使用一对方括号来表示空列表: []
2.使用方括号,其中的项以逗号分隔: [a], [a, b, c]
3.使用列表推导式: [x for x in iterable]
4.使用类型的构造器: list() 或 list(iterable)
构造器将构造一个列表,其中的项与 iterable 中的项具有相同的的值与顺序。 iterable 可以是序列、支持迭代的容器或其它可迭代对象。 如果 iterable 已经是一个列表,将创建并返回其副本,类似于 iterable[:]。 例如,list('abc') 返回 ['a', 'b', 'c'] 而 list( (1, 2, 3) ) 返回 [1, 2, 3]。 如果没有给出参数,构造器将创建一个空列表 []。
其它许多操作也会产生列表,包括 sorted() 内置函数。
列表实现了所有 一般 和 可变 序列的操作。 列表还额外提供了以下方法:
sort(*, key=None, reverse=False)
此方法会对列表进行原地排序,只使用 < 来进行各项间比较。 异常不会被屏蔽 —— 如果有任何比较操作失败,整个排序操作将失败(而列表可能会处于被部分修改的状态)。
sort() 接受两个仅限以关键字形式传入的参数 (仅限关键字参数):
key 指定带有一个参数的函数,用于从每个列表元素中提取比较键 (例如 key=str.lower)。 对应于列表中每一项的键会被计算一次,然后在整个排序过程中使用。 默认值 None 表示直接对列表项排序而不计算一个单独的键值。
可以使用 functools.cmp_to_key() 将 2.x 风格的 cmp 函数转换为 key 函数。
reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。
当顺序大尺寸序列时此方法会原地修改该序列以保证空间经济性。 为提醒用户此操作是通过间接影响进行的,它并不会返回排序后的序列(请使用 sorted() 显示地请求一个新的已排序列表实例)。
sort() 方法确保是稳定的。 如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其为稳定的 --- 这有利于进行多重排序(例如先按部门、再按薪级排序)。
有关排序示例和简要排序教程,请参阅 排序指南 。
CPython implementation detail: 在一个列表被排序期间,尝试改变甚至进行检测也会造成未定义的影响。 Python 的 C 实现会在排序期间将列表显示为空,如果发现列表在排序期间被改变将会引发 ValueError。
- 上一篇: Python合集之Python序列(一)
- 下一篇: Python序列类型
猜你喜欢
- 2024-11-27 Python中的bytearray对象,灵活的字节序列处理
- 2024-11-27 学习编程第141天 python序列解包特性及其便捷赋值
- 2024-11-27 学习编程第159天 python编程 序列的增删改查
- 2024-11-27 Python中的时间序列分解
- 2024-11-27 Python入门第4课:字符串、序列
- 2024-11-27 python基础 数值和序列类型
- 2024-11-27 学习编程第158天 python编程 利用序列求最值和存在性
- 2024-11-27 python每天学习一点点(判断数元素是否在序列中的2种方法。)
- 2024-11-27 Python中6种内建序列之通用操作
- 2024-11-27 通过 Python 代码实现时间序列数据的统计学预测模型
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)