@songying
2018-12-30T21:29:05.000000Z
字数 2642
阅读 1135
python数据类型
列表 是一种用于保存一系列有序项目的集合, 且该数据结构是可变的。元素之间以逗号分隔,列表List应该用方括号括起来。
shoplist = ['apple', 'mango', 'carrot', 'banana']
shoplist[0] # 访问元素
shoplist[0] = 100 # 修改列表元素
del shoplist[0] # 删除列表元素
shoplist.append('rice')
shoplist.sort()
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
+
用于组合列表,*
用于重复列表
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [3, 4, 5] | [1, 2, 3, 3, 4, 5] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | 'Taobao' | 读取第三个元素 |
L[-2] | 'Runoob' | 从右侧开始读取倒数第二个元素: count from the right |
L[1:] | ['Runoob', 'Taobao'] | 输出从第二个元素开始后的所有元素 |
将元组转换为列表
list(seq)
# 返回值: 返回列表
# seq: 要转换的元组
在列表末尾添加新的对象。
list.append(obj)
# 无返回值,但会修改原来的表
统计某个元素在列表中出现的次数
list.count(obj)
# 返回元素在列表中出现的次数
在列表末尾一次性追加另一个序列中的多个值。多用于在已存在的列表中添加新列表的内容。
list.extend(seq)
# 无返回值
从列表中找出某个值第一个匹配项的索引位置。
list.index(obj)
# obj : 要查找的对象
# 返回值:查找对象的索引位置,如果没有找到对象则抛出异常。
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
list.pop(num=[-1])
# num,表示删除list[num],默认删除最后一个元素
# 返回值:从列表中移除的元素对象
list.pop(1) # 删除列表的第二个元素
移除列表中某个值的第一个匹配项。
list.remove(obj)
# obj: 列表中要移除的对象
返回值:无
反向列表中元素。
list.reverse()
# 返回值: 无,将列表自身元素反向
对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
默认升序排列
list.sort([func])
# func: 可选参数,如果指定了该参数会使用该参数的方法进行排序
# 返回值:无,对列表自身进行排序
清空列表
list.clear()
# 无返回值
将某个元素添加到某个位置。
list.insert(num, value)
# 插入list[num = value
复制列表
list.copy()
# 返回值: 复制后的新列表
注意到,虽然 append 和 extend 可接收一个列表作为参数,但是 append 方法是将其作为一个元素添加到列表中,而 extend 则是将新列表的元素逐个添加到原列表中。
方法 | 作用 |
---|---|
s.__add__(s2) |
元组拼接 s + s2 |
s.__contains__(e) |
s中是否包含e |
s.count(e) |
e在s中的计数 |
s.__getitem__(p) |
s[p] |
s.index(e) |
在 s 中找到元素 e 第一次出现的位置 |
s.__iter__() |
获取 s 的迭代器 |
s.__len__() |
len(s) ,元素的数量 |
s.__mul__(n) |
s * n ,n个 s 的重复拼接 |
s.__rmul__(n) |
n * s ,反向拼接 * |
方法 | 作用 |
---|---|
s.__iadd__(s2) |
s += s2 ,就地拼接 |
s.__delitem__(p) |
把位于 p 的元素删除 |
s.__imul__(n) |
s *= n ,就地重复拼接 |
s.__reversed__() |
返回 s 的倒序迭代器 |
s.__setitem__(p, e) |
s[p] = e |
方法 | 作用 |
---|---|
s.sort([key],[reverse]) |
就地对 s 中的元素进行排序,可选的参数有键( key )和是否倒序( reverse ) |
s.append(e) |
在尾部添加一个新元素 |
s.clear() |
删除所有元素 |
s.copy() |
列表的浅复制 |
s.extend(it) |
把可迭代对象 it 追加给 s |
s.insert(p, e) |
在位置 p 之前插入元素e |
s.pop([p]) |
删除最后或者是(可选的)位于 p 的元素,并返回它的值 |
s.remove(e) |
删除 s 中的第一次出现的 e |
s.reverse() |
就地把 s 的元素倒序排列 |
- list.sort 方法会就地排序列表,也就是说不会把原列表复制一份。
- sorted,它会新建一个列表作为返回值。
在python中有一个惯例: 如果一个函数或者方法对对象进行的是就地改动,那它就应该返回 None,好让调用者知道传入的参数发生了变动,而且并未产生新的对象。