列表:可变序列
创建 list
--------
1. [元素1, 元素2, ...]
2. list()
3. list(iterable)
4. 列表生成式(List Comprehensions)
[exp for iter_var in iterable]
[x * x for x in ...]
[x + y for x in ... for y in ...]
[x + x for x in ... if...]
~~~
[]
[1, 2]
list() # []
list(range(3))
list('123')
[x for x in range(1, 5)] # [1, 2, 3, 4]
[x * x for x in range(1, 5)] # [1, 4, 9, 16]
[x + x for x in range(1, 5) if x % 2 == 0] # [4, 8]
[m + n for m in 'ABC' for n in 'abc'] # ['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']
[m + n for m in 'ABC' if m=='A' for n in 'abc'] # ['Aa', 'Ab', 'Ac']
[k+v+x for k, v in {'a':'A', 'b':'B'}.items() for x in '12345']
# ['aA1', 'aA2', 'aA3', 'aA4', 'aA5', 'bB1', 'bB2', 'bB3', 'bB4', 'bB5']
[k + v for k, v in {1:11, 2:22}.items()] # [12, 24]
[s.lower() for s in 'ABC'] # ['a', 'b', 'c']
~~~
list 常见操作
-------------
- 增:L.insert(index, object)、L.append(obj) 、L.extend(iterable)
- 删:del、L.pop([index=-1])、L.remove(value)
- 改:1、索引 2、切片
- 查:1、索引 2、切片
list 函数/方法
---------------
#### insert()
~~~
L.insert(index, object) -> None -- 在指定索引前插入对象
~~~
~~~
l.insert(0, 'first')
~~~
#### append()
~~~
L.append(object) -> None -- 添加对象到末尾
~~~
~~~
l.append('end')
~~~
#### extend()
~~~
L.insert(index, object) -> None -- 在指定索引前插入对象
~~~
~~~
l.insert(0, 'first')
~~~
#### insert()
~~~
L.extend(iterable) -> None -- 合并可循环对象至列表
~~~
~~~
l.extend(range(3, 5))
l.extend(['x', 'y'])
~~~
#### pop()
~~~
L.pop([index=-1]) -> item -- 弹出指定元素
~~~
~~~
l.pop()
l.pop(-2)
~~~
#### remove()
~~~
L.remove(value) -> None -- 删除匹配到的第一个元素
~~~
找不到元素则报错
~~~
l.remove(1)
l.remove(100) # 报错!100 not in list
~~~
#### insert()
~~~
L.insert(index, object) -> None -- 在指定索引前插入对象
~~~
~~~
l.insert(0, 'first')
~~~
#### del
- del var1[,var2[,var3[....,varN]]]] -- 删除单个或多个对象的引用
- del 是语句,而不是函数或方法
~~~
l = [1, 2, 3]
del l[0], l[1] # l = [2] 不是预期的[3]
~~~
#### index()
~~~
L.index(value, [start, [stop]]) -> integer -- 返回元素第一次出现位置的索引
~~~
- start、stop索引规则同切片,亦可越界
- 找不到元素则报错
~~~
l = ['a', 'b', 'c', 'd', 'e']
l.index('a') # 0
l.index('e', 0, 4) # 报错!并不包含stop=4的元素
l.index('e', 0, 5) # 4 索引可以越界
~~~
#### count()
~~~
L.count(value) -> integer -- 返回元素出现的次数
~~~
~~~
l.count(0)
~~~
#### reverse()
~~~
L.reverse() -> None -- 倒序
~~~
~~~
l.reverse()
~~~
#### sort()
~~~
L.sort(key=None, reverse=False) -> None -- 排序
~~~
~~~
l.sort()
~~~
- 前言
- Python编程规范
- 编码
- 代码
- 缩进、行宽、引号、空行
- 空格
- 换行
- import
- 注释
- 代码注释
- 文档注释(Docstring)
- 命名规范
- 数据结构
- 变量
- 变量作用域
- 命名空间
- 作用域
- python作用域
- 对象
- 序列
- 可迭代对象
- 迭代器
- 生成器
- 可迭代对象 & 迭代器 & 生成器
- 整数池 & 字符串intern
- 数据类型
- 数字
- int
- float
- NaN
- 四舍五入 & 取整
- 列表
- 元组
- 字典
- 集合
- 字符串
- 字符集&字符编码
- 字符串&字节串
- 字符串函数
- 字符串格式化
- str.format
- Formatted string literals
- format函数
- string.Formatter类
- %
- Format String Syntax
- Format Specification Mini-Language
- fill
- align
- sign
- #
- 0
- width
- grouping_option
- .precision
- type
- locale
- Python3 locale 模块
- 语句
- 运算符
- if/else
- for...in
- while
- break/continue
- 函数
- 函数
- 函数参数
- 递归函数
- 匿名函数
- 高阶函数
- map
- reduce
- filter
- sorted
- 返回函数
- 闭包
- 装饰器
- 函数装饰器
- 带参数的装饰器
- 类装饰器
- 带参数的类装饰器
- 偏函数
- 面向对象
- 类 & 实例
- 属性
- 方法
- 访问限制
- 继承
- 新式类 & 经典类
- MRO
- MixIn
- 模块
- 特殊变量
- 编写模块
- 引入 & 重载
- 搜索模块
- 第三方模块
- 常见模块
- 标准库
- os
- sys
- datetime
- re
- urllib
- time/datetime
- threading
- multiprocessing
- builtins
- help
- range
- enumerate
- 异同
- str() repr() ascii()
- exit()、sys.exit()、os._exit()
- 数据库
- mysql
- 错误、调试、测试
- 异常
- 异常处理
- 自定义异常
- 抛出异常
- 调试
- logging
- pdb
- 线程&&进程
- 线程
- 杂
- python 脚本传参
- python无关
- redis
- mongo
- linux
- mysql简略