Python 基础(三) ——— 列表
最大的骄傲与最大的自卑都表示心灵的最软弱无力 ———-斯宾诺莎
列表
- 列表是由一系列按照特定顺序排列的元素组成。你可以创建任何元素,其中的元素之间可以没有任何关系.鉴于列表通常包含多个元素,我们可以随便起一个表示复数的名称
arr = ["1","2","hello"]
print(arr)
------
最后的结果
['1', '2', 'hello']
访问列表元素
- 可以通过序号来访问列表元素
arr = ["1", "2", "hello"]
print(arr[2])
-----
结果hello
通过 index()方法在列表中查找值
- index()方法
- arr.index(‘hello’)
spanm = ["11", '22', '33', '44']
print(spanm.index("22"))
# 结果
# 1
获取列表元素
- 在 Python 中 第一个列表元素的索引为 0,而不是 1
arr = ["1", "2", "hello"]
print(arr[0])
-----
结果就是1
- Python 提供了一个新的特性 就是索引要是-1 他会返回列表最后一个元素,-2 就是倒数第二个
arr = ["第一个","第二个","第三个"]
print(arr[-1])
-------
结果就是 第三个
- 练习
arr = ["第一名", "第二名", "第三名"]
print("这次小明获得了"+arr[0]+"小红获得了"+arr[-2]+"小兰获得了"+arr[-1])
修改列表元素
- 重新赋值
arr = ["第0个","第二个","第三个"]
arr[0] = "第一个"
print(arr)
--------
最后结果
['第一个', '第二个', '第三个']
在列表中添加元素
- 在列表中末尾添加元素,必须使用 append
arr = ["第一个","第二个","第三个"]
arr.append("第四个")
print(arr)
-------
最后结果
['第一个', '第二个', '第三个', '第四个']
- 在列表中任何位置插入新元素 insert 他接受两个参数 第一个参数是位置 第二个参数是内容
arr = ["第一个", "第三个", "第四个"]
arr.insert(1, "第二个")
print(arr)
-------
最后结果
['第一个', '第二个', '第三个', '第四个']
列表中删除元素
- 使用 del 语句来删除元素(必须知道要删除的位置)
arr = ['第一个', '第二个', '第三个', '第四个']
del arr[1]
print(arr)
------
最后结果
["第一个", "第三个", "第四个"]
- 使用 pop()来删除元素,不加序号只能删除列表最后的元素
arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop()
print(arr)
print(result)
----
最后结果
['第一个', '第二个', '第三个']
第四个
- 加了序号,删除任意位置
arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop(2)
print(arr)
print(result)
----
最后结果
['第一个', '第二个', '第四个']
第三个
- pop()获取最后一个元素以后,改变原列表
根据值删除元素
- remove 他接受一个参数,要删除的值找到第一个匹配的值
arr = ['第一个', '第二个', '第三个']
arr.remove("第二个")
print(arr)
----
最后结果
['第一个', '第三个']
- 要是内部有相同的数据,他只删除第一个
arr = ['第一个', '第二个', '第三个', "第二个"]
arr.remove("第二个")
print(arr)
----
最后结果
['第一个', '第三个',"第二个"]
排序
使用方法 sort() 由小到大
- 使用 sort()能让你对列表排序,这个操作是永久性的无法回退
arr = ['d', 'c', 'a', "b"]
arr.sort()
print(arr)
----------
最后结果
[a,b,c,d]
要是想反向排列只需要 reverse=True 由大到小
- reverse=True T 必须要大写
arr = ['d', 'c', 'a', "b"]
arr.sort(reverse=True)
print(arr)
----
最后结果
['d', 'c', 'b', 'a']
临时排序,不改变原列表 sorted 放在开头 sorted(xxx)
- 正向排列
arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr)
print(arr)
print(arr2)
-------
最后结果
['d', 'c', 'a', 'b']
['a', 'b', 'c', 'd']
- 要是反向排列
arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr, reverse=True)
print(arr)
print(arr2)
------
最后结果
['d', 'c', 'a', 'b']
['d', 'c', 'b', 'a']
反转顺序
- reverse
反转顺序
arr = ['d', 'c', 'a', "b"]
arr.reverse()
print(arr)
----
最后结果
["b","a","c","d"]
确定列表的长度 len(xxx) 放在开头
- len() 获取到列表的长度
arr = ['d', 'c', 'a', "b"]
print(len(arr))
用 list()和 tuple()来转换类型
- tuple 将 类型变成元祖
print(tuple('hello'))
# 结果
# ('h', 'e', 'l', 'l', 'o')
- list 将类型变成数组
print(list('hello2'))
# 结果
# ['h', 'e', 'l', 'l', 'o', '2']
引入 copy 模块和 deepcopy()
import copy
result = ['A', 'B', 'C', 'D']
cheese = copy.copy(result)
cheese[1] = '42'
print(cheese)
print(result)
# 结果
# ['A', '42', 'C', 'D']
# ['A', 'B', 'C', 'D']
- deepcopy 就是复制的列表中包含了列表,这个时候就必须用 deepcopy
import copy
result = ['A', [2, 3, 4], 'C', 'D']
cheese = copy.deepcopy(result)
cheese[1] = [5, 6, 7]
print(cheese)
print(result)
# 结果
# ['A', [5, 6, 7], 'C', 'D']
# ['A', [2, 3, 4], 'C', 'D']