列表创建
创建一个列表,只要用逗号分隔不同的数据项使用方括号括起来即可,例如:
first_list = ["hello","python",1900,1970]
列表访问
使用下标索引访问列表中的值,也可通过方括号进行截取。例如:
>>> first_list = ["hello","python",1900,1970]
>>> first_list[0]
'hello'
>>> first_list[1:3]
['python', 1900]
列表更新
可以索引对列表的数据项进行修改或更新,也可用append方法来增加列表项,例如:
>>> first_list = ["hello","python",1900,1970]
>>> first_list[1] = "yangyang"
>>> first_list
['hello', 'yangyang', 1900, 1970]
append例子,例如:
>>> first_list = ["hello","python",1900,1970]
>>> first_list.append(2017)
>>> first_list
['hello', 'yangyang', 1900, 1970, 2017]
列表元素删除
使用del删除列表中的元素,例如:
>>> first_list = ["hello","python",1900,1970]
>>> del first_list[3]
>>> first_list
['hello', 'python', 1900]
列表截取
>>> first_list = ["hello","python",1900,1970]
>>> first_list[1]
'python'
>>> first_list[-2]
1900
>>> first_list[1:3]
['python', 1900]
>>> first_list[1:]
['python', 1900, 1970]
>>> first_list[-1:-3:-1]
[1970, 1900]
列表运算符:+、*、[]、[:]、in、not in、for i in list
a = ["hello","python"],b = ["hello","yangyang"]
操作符 | 描述 | 实例 |
+ | 组合 |
>>> a = ["hello","python"] |
* | 重复 |
>>> a * 4 |
[] | 索引 |
>>> a[0] |
[:] | 截取 |
>>> a[0:2] |
in | 成员运算符,元素在列表中返回True |
>>> "hello" in a |
not in | 成员运算符,元素不在列表中返回True |
>>> "world" not in a |
for i in list | 迭代 |
>>> for i in a: hello |
列表函数
语法 |
描述 | 参数 | 返回值 | 实例 |
cmp(list1,list2) | 比较两个列表的元素 |
list1--比较列表 list2--比较列表 |
list1 > list2:1 list1 < list2:-1 list1 == list2:0 |
>>> list2 = [456,"abc"] |
len(list) | 列表元素个数 | list--要计算元素个数的列表 | 返回元素个数 |
>>> list1 = [1,2,3,4,5,6] |
max(list) | 返回列表元素最大值 | list--要返回最大值的列表 | 返回列表中的最大值 |
>>> list1 = [1,2,3,4,5,6] |
min(list) | 返回列表元素最小值 | list--要返回最小值的列表 | 返回列表中的最小值 |
>>> list1 = [1,2,3,4,5,6] |
list(seq) | 将String和tuple转换成列表 | seq--要转换成列表的string或tuple | 返回列表 |
>>> tuple1 = (1,2,3,4,5) |
列表方法
语法 | 描述 | 参数 | 返回值 | 实例 |
list.append(obj) | 列表末尾添加新对象 | obj--添加到列表末尾的对象 | 无返回值,修改原来列表 |
>>> list1 = [1,2,3,4] |
list.count(obj) | 统计某个元素在列表中出现的次数 | obj--列表中的统计对象 | 元素在列表中出现的次数 |
>>> list1 = [1,2,3,4,1,2,3] |
list.extend(seq) | 列表末尾追加另一个列表的多个值(用新列表扩展原来列表) | seq--扩展列表 | 无返回值,修改原有列表 |
>>> list1 = [1,2,3,4,5] |
list.index(obj) | 列表中找出某个值第一匹配的索引位置 | obj--查找的对象 | 返回查找对象的索引位置,无抛出异常 |
>>> list1 = [1,2,3,1,4] Traceback (most recent call last): |
list.insert(index,obj) | 将对象插入列表的指定位置 |
index--插入的索引位置 obj--要插入列表中的对象 |
无返回值,会在原有列表中插入对象 |
>>> list1 = [1,2,3,4,5] |
list.pop([obj]) | 移除某个元素,并返回该元素的值 | obj--可选参数,要移除列表的元素的index | 返回移除元素对象 |
>>> list1 = [1,2,1,3,4,5] |
list.remove(obj) | 移除列表中摸个值的第一个匹配项 | obj--列表中要移除的对象 | 无返回,移除列表中对象 |
>>> list1 = [1,2,1,3,4,5] |
list.revese() | 反向列表元素 | 无 | 无,对列表元素反向排序 |
>>> list1 = [1,2,1,3,4,5] |
list.sort([func]) | 对列表元素进行排序 | func--可选参数,若指定func则用func方法进行排序 | 无返回值,对列表对象进行排序 |
>>> list1 = [1,2,1,3,4,5] >>> list1.sort() |
列表解析
列表解析表达式1:[expression for target1 in iterable1 [if condition1],例子:
>>> [i *2 for i in range(1,10) if i % 2 == 0]
[4, 8, 12, 16]
列表解析表达式2--加入嵌套循环:[expression for target1 in iterable1 [if condition1]...
for targetn in iterablen [if conditionn] ],例子:
>>> [(i*i,j*j) for i in range(1,5) if i % 2 != 0 for j in range(1,5) if j % 2 ==0]
[(1, 4), (1, 16), (9, 4), (9, 16)]
注意:上面是列表解析中,任意数量嵌套的for循环同时关联可选的if 测试,其中if 表示测试语句是可选的,如果没有的话,注意for上下之间表示的是一个嵌套关系。