python常用数据结构:

1)列表

2)

3)

4)

列表的定义:

python中可以通过组合一些值得到多种复合型数据类型。列表是最常用的数据结构。列表通过方括号起、逗号分隔的一组值得到。一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同

列表的特性(列表中定义的方法):

1)list.append(x):在列表的末尾添加一个元素。相当于a[len(a):]=[x] 

2)list.insert(i,x):在给定的位置插入一个元素。第一个参数是要插入的元素的索引,以a.insert(0,x)插入列表头部,a.insert(len(a),x)等同于a.append(x)

3)list.remove(x):移除列表中第一个值为x的元素。如果没有这样的元素,则抛出ValueErro异常。代码示例:

a=["h","o",'n']try:
    a.remove("oo")print(a)except:print("有异常")

4)list.pop([i]):删除列表中给定位置(index)的元素并返回它。如果没有给定位置(但不能超出列表的长度),a.pop()将会删除并返回列表中最后一个元素。代码示例:

#删除下标为1的元素:“o"a=["h","o",'n']
a.pop(1)print(a)
#删除最后一个元素(下标为-1):“n"a=["h","o",'n']
a.pop()print(a)
#下标超出长度,会报错a=["h","o",'n']
a.pop(3)print(a)

5)list.sort(key=None,reverse=False):对列表中的元素进行排序(参数可用于自定义排序,解是请参见sorted())。key 可指定一些规则,reverse 默认值是False,可以给它赋值成True,那就是反向排序,可以自定义key函数排序)。自定义key代码示例如下:

#自定义key规则实现反转(对应的元素平方作比较决定元素的位置)a=[-2,1,5]def f(x):return x*x

a.sort(key=f)print(a)

6)list.reverse():反转列表中的元素

a=[3,1,5]
a.reverse()print(a)

7)list.clear():删除列表中所有的元素。相当于 del a[:]。代码示例:

a=[1,2,3,5]
a.clear()print(a)

8)list.extend(iteable):使用可迭代对象中的所有元素来扩展列表。相当于a[len(a):]=iterable。代码示例:

a=[1,2,3,5]
iterable=[7,8,9]
a.extend(iterable)print(a)

输出结果为:

D:\pythonProject\venv\python基础\Scripts\python.exe D:/pythonProject/venv/python基础/python常用数据结构.py
[1, 2, 3, 5, 7, 8, 9]

Process finished with exit code 0

重点注意,这和a.append不同,a,append是会将整个iterable当作一个整体,作为一个元素放到a列表中。代码示例和结果输出如下:

a=[1,2,3,5]
iterable=[7,8,9]
a.append(iterable)print(a)

结果:

D:\pythonProject\venv\python基础\Scripts\python.exe D:/pythonProject/venv/python基础/python常用数据结构.py
[1, 2, 3, 5, [7, 8, 9]]

Process finished with exit code 0

9)list.index(x,start,end]):返回列表第一个值为x的元素的从零开始的索引。如果没有这样的元素,将抛出valueerror异常。代码示例如下:

a=[1,2,3,5]print(a.index(2, 0, 3))

结果将是1(2对应的列表中的下标是1),有返回值且返回值为对应的下标

10)list.count(x):返回元素x在列表中出现的次数。代码示例如下:

a=[1,2,1,3,1,1,1,5,[1,1,2,1]]print(a.count(1))

结果:

D:\pythonProject\venv\python基础\Scripts\python.exe D:/pythonProject/venv/python基础/python常用数据结构.py5Process finished with exit code 0

11)list.copy():返回列表的一个浅拷贝,相当于a[:]。代码示例:

a=[1,2,1,3,1,1,1,5,[1,1,2,1]]print(a.copy())

结果:

D:\pythonProject\venv\python基础\Scripts\python.exe D:/pythonProject/venv/python基础/python常用数据结构.py
[1, 2, 1, 3, 1, 1, 1, 5, [1, 1, 2, 1]]

Process finished with exit code 0

总结注意:

insert、remove或者sort方法,之修改列表,没有返回值(他们的返回值都是None)。这是python中所有可变数据结构的设计原则。并非所有数据或可以排序或比较(字符串和数字等)