日期:2019年11月23日
作者:Commas
注释:学习就是为了忘记,让我们来总结一下Python3列表的定义、11个列表方法的使用、5种列表遍历的方法…
如果您想了解更多有关Python的知识,那么请点《我的Python浅谈系列目录》
一、列表的定义
列表
是有序的可变
的元素集合,每个元素都会分配一个数字,这个数字就是对应元素在列表的索引,即“列表[索引] = 元素”。
num_list = [111, 222, 333] # 列表直接定义
num_list[0] # 值为111
num_list[1] # 值为222
num_list[2] # 值为333
二、列表的方法
获取“列表方法”的方法如下:
Python语句:print(dir([]))
控制台输出:
[‘add’, ‘class’, ‘contains’, ‘delattr’, ‘delitem’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘getitem’, ‘gt’, ‘hash’, ‘iadd’, ‘imul’, ‘init’, ‘init_subclass’, ‘iter’, ‘le’, ‘len’, ‘lt’, ‘mul’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘reversed’, ‘rmul’, ‘setattr’, ‘setitem’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]
append(object)
Append object to the end of the list.
在列表末尾添加新的对象
name_list = []
name_list.append("Commas")
print(name_list)
# 控制台输出:['Commas']
insert(index, object)
Insert object before index.
将对象插入在列表(索引为index元素之前的位置)
name_list = ["Commas"]
name_list.insert(0, "星爷")
print(name_list)
# 控制台输出:['星爷', 'Commas']
extend(iterable)
Extend list by appending elements from the iterable.
在列表末尾一次性追加另一个序列中的多个值
(用新列表扩展原来的列表)
name_list = ["星爷"]
temp_list = ["Commas"]
name_list.extend(temp_list)
print(name_list)
name_list.extend("123")
print(name_list)
# 控制台输出:
# ['星爷', 'Commas']
# ['星爷', 'Commas', '1', '2', '3']
copy()
Return a shallow copy of the list.
返回列表的浅复制(开辟了新的内存空间)
# (1)列表方法浅复制
name_list = ["Commas"]
copy_list = name_list.copy()
copy_list.append("星爷")
print(name_list, id(name_list))
print(copy_list, id(copy_list))
# 控制台输出:
# ['Commas'] 1886939296008
# ['Commas', '星爷'] 1886938538568
#-------------------------
# (2)直接用赋值符号
name_list = ["Commas"]
equal_list = name_list
equal_list.append("星爷")
print(name_list, id(name_list))
print(equal_list, id(equal_list))
# 控制台输出:
# ['Commas', '星爷'] 1886938579720
# ['Commas', '星爷'] 1886938579720
(i)知识加油站
id(object)–> 获得 obj 的内存地址(10进制)
(ii)小结:
1、列表的copy方法是重新开辟了一个新的内存空间,将name_list的“值”复制过去,所以在对copy_list添加元素的时候,name_list的值不变,感觉好像只是浅浅的复制了原列表的“值”,与原来列表没有任何关联了,所以就将该方法称之为列表的【浅复制】
;
2、赋值号操作(=)没有开辟新的内存空间,只是复制了列表的内存地址,因为是同一块内存空间,在同一块内存上修改(追加一个元素)所以name_list的值也会进行更改,称之为列表的【深复制】
remove(object)
Remove first occurrence of value.
Raises ValueError if the value is not present.
移除列表中某个值的第一个匹配项,
若值不存在,则抛出异常。
name_list = ["逗号先生", "星爷", "达叔", "逗号先生"]
print(name_list)
name_list.remove("逗号先生")
print(name_list)
name_list.remove("Commas") #异常:ValueError
print(name_list)
# 控制台输出:
# ['逗号先生', '星爷', '达叔', '逗号先生']
# ['星爷', '达叔', '逗号先生']
# File "D:test.py", line 5, in <module> name_list.remove("Commas")
# ValueError: list.remove(x): x not in list
小结:
1、移除的元素是列表中第一次出现的元素;
2、如果移除的元素不在列表中,那么会报错。
pop(index)
Remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,
若值不存在,则抛出异常。
name_list = ["星爷", "达叔", "Commas"]
print(name_list)
name_list.pop()
print(name_list)
name_list.pop(1)
print(name_list)
name_list.pop(6) #异常:IndexError
print(name_list)
# 控制台输出:
# ['星爷', '达叔', 'Commas']
# ['星爷', '达叔']
# ['星爷']
# File "D:test.py", line 5, in <module> name_list.pop(6)
# IndexError: pop index out of range
小结:
1、默认移除并返回最后一个元素,
如果index有指定,那么久移除并返回指定元素;
2、如果pop的index超出列表的范围,那么会报错。
clear()
Remove all items from list
移除列表所有的元素(清空列表元素,列表还在)
name_list = ["星爷", "达叔", "Commas"]
print(name_list)
name_list.clear()
print(name_list)
# 控制台输出:
# ['星爷', '达叔', 'Commas']
# []
index(object)
Return first index of value.
Raises ValueError if the value is not present.
从列表中找出某个值第一个匹配项的索引位置
若值不存在,则抛出异常。
name_list = ["星爷", "达叔", "Commas"]
index = name_list.index("达叔")
print(index)
# 指定列表下标从0到2中查询“达叔”的下标值
index = name_list.index("达叔", 0, 2)
print(index)
index = name_list.index("逗号先生") #异常:ValueError
print(index)
# 控制台输出:
# 1
# 1
# File "D:test.py", line 7, in <module>
# index = name_list.index("逗号先生")
# ValueError: '逗号先生' is not in list
count(object)
Return number of occurrences of value.
统计某个元素在列表中出现的次数
name_list = ["星爷", "达叔", "星爷"]
count = name_list.count("星爷")
print(count)
count = name_list.count("逗号先生")
print(count)
# 控制台输出:
# 2
# 0
reverse()
Reverse IN PLACE.
逆序,反转,将列表元素的顺序反过来
name_list = ["星爷", "达叔", "Commas"]
print(name_list)
name_list.reverse()
print(name_list)
# 控制台输出:
# ['星爷', '达叔', 'Commas']
# ['Commas', '达叔', '星爷']
sort()
Stable sort IN PLACE.
排序,对原列表进行排序
num_list = [1, 6, 2, 9]
print(num_list)
# 升序
num_list.sort()
print(num_list)
# 降序
num_list.sort(reverse=True)
print(num_list)
# 控制台输出:
# [1, 6, 2, 9]
# [1, 2, 6, 9]
# [9, 6, 2, 1]
三、列表的遍历
- 使用
for循环
遍历
name_list = ["星爷", "达叔", "Commas"]
for name in name_list:
print(name)
控制台输出结果:
星爷
达叔
Commas
- 使用
while循环
遍历
name_list = ["星爷", "达叔", "Commas"]
# 初始化计数器
count = 0
while count < len(name_list):
print(name_list[count])
# 相当于count = count + 1
count += 1
控制台输出结果:
星爷
达叔
Commas
- 使用
range()
遍历
name_list = ["星爷", "达叔", "Commas"]
# (1)range(stop)
for index in range(len(name_list)):
print(name_list[index], end=",")
print() # 换行
# (2)range(start, stop)
for index in range(1, len(name_list)):
print(name_list[index], end=",")
print() # 换行
# (3)range(start, stop ,step)
for index in range(0, len(name_list), 2):
print(name_list[index], end=",")
控制台输出结果:
星爷,达叔,Commas,
达叔,Commas,
星爷,Commas,
- 使用
iter()
遍历
name_list = ["星爷", "达叔", "Commas"]
for value in iter(name_list):
print(value)
控制台输出结果:
星爷
达叔
Commas
- 使用
enumerate()
遍历
name_list = ["星爷", "达叔", "Commas"]
for index, value in enumerate(name_list):
print(index, value)
控制台输出结果:
0 星爷
1 达叔
2 Commas
本文参考:
1、https://www.runoob.com/python/python-lists.html
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/103116752