文章目录
建立
在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
name = ["张飞","刘备","关羽"]
print(name)
# ['张飞', '刘备', '关羽']
访问列表元素
只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。索引是从0开始的。
print(name[0])
# 张飞
倒着访问列表。索引-1表示最后一个,-2表示倒数第二个,以此类推。
print(name[-1])
print(name[-2])
print(name[-3])
'''
关羽
刘备
张飞
'''
修改、添加和删除元素
修改列表元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
name = ["张飞","刘备","关羽"]
name[0] = "曹操"
print(name)
# ['曹操', '刘备', '关羽']
在列表中添加元素
在列表末尾添加元素:append()
name = ["张飞","刘备","关羽"]
print(name)
name.append("曹操")
print(name)
'''
['张飞', '刘备', '关羽']
['张飞', '刘备', '关羽', '曹操']
'''
name= []# 创建空列表
name.append("张飞")
name.append("刘备")
name.append("关羽")
print(name)
"""
['张飞', '刘备', '关羽']
"""
在列表中插入元素:insert()
使用方法insert() 可在列表的任何位置添加新元素。需要指定新元素的索引和值。
name = ["张飞","刘备","关羽"]
print(name)
name.insert(1,"周瑜")
print(name)
'''
['张飞', '刘备', '关羽']
['张飞', '周瑜', '刘备', '关羽']
'''
从列表中删除元素
使用del 语句删除元素
需要删除的元素在列表中的位置,使用del
可删除任何位置处的列表元素。
name = ["张飞","刘备","关羽"]
print(name)
del name[0]
print(name)
'''
['张飞', '刘备', '关羽']
['刘备', '关羽']
'''
使用方法pop() 删除元素
方法pop() 可删除列表末尾的元素,并能够接着使用它。术语**弹出 (pop)**源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
name = ["张飞","刘备","关羽"]
print(name)
popped_name = name.pop()
print(name)
print(popped_name)
'''
['张飞', '刘备', '关羽']
['张飞', '刘备']
关羽
'''
弹出列表中任何位置处的元素
可以使用pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
name = ["张飞","刘备","关羽"]
print(name)
popped_name = name.pop(1)# 弹出 刘备
print(name)
print(popped_name)
'''
['张飞', '刘备', '关羽']
['张飞', '关羽']
刘备
'''
根据值删除元素:remove()
如果不知道要从列表中删除的值所处的位置,只知道要删除的元素的值,可使用方法remove() 。使用remove() 从列表中删除元素时,也可接着使用它的值。
方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
name = ["张飞","刘备","关羽"]
print(name)
name.remove("刘备")# 删除刘备
print(name)
'''
['张飞', '刘备', '关羽']
['张飞', '关羽']
'''
组织列表
组织列表元素的顺序。
对列表进行永久性排序 :sort()
排序后再也无法恢复到原来的排列顺序。向sort() 方法传递参数reverse=True ,还可以按与字母顺序相反的顺序排列列表元素。
name = ["张飞","刘备","关羽","大乔"]
print("原列表")
print(name)
name.sort()
print("\n排序后的列表")
print(name)
name.sort(reverse=True)
print("\n逆序后的列表")
print(name)
'''
原列表
['张飞', '刘备', '关羽', '大乔']
排序后的列表
['关羽', '刘备', '大乔', '张飞']
逆序后的列表
['张飞', '大乔', '刘备', '关羽']
'''
对列表进行临时排序:sorted()
函数sorted() 能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。如果要按与字母顺序相反的顺序显示列表,也可向函数sorted() 传递参数reverse=True 。
name = ["张飞","刘备","关羽","大乔"]
print("原列表")
print(name)
print("\n排序后的列表")
print(sorted(name))
print("\n排序后的原列表")
print(name)
print("\n逆序后的列表")
print(sorted(name,reverse=True))
'''
原列表
['张飞', '刘备', '关羽', '大乔']
排序后的列表
['关羽', '刘备', '大乔', '张飞']
排序后的原列表
['张飞', '刘备', '关羽', '大乔']
逆序后的列表
['张飞', '大乔', '刘备', '关羽']
'''
倒着打印列表:reverse()
reverse() 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。
name = ["张飞","刘备","关羽","大乔"]
print("原列表")
print(name)
name.reverse()
print("\n倒序的列表")
print(name)
name.reverse()
print("\n恢复的列表")
print(name)
'''
原列表
['张飞', '刘备', '关羽', '大乔']
倒序的列表
['大乔', '关羽', '刘备', '张飞']
恢复的列表
['张飞', '刘备', '关羽', '大乔']
'''
确定列表的长度:len()
一维时:
name = ["张飞","刘备","关羽","大乔"]
len(name)
# 4 列表中有4个元素
多维时:
name = [["张飞","刘备"],["关羽","大乔"],["诸葛亮","曹操"]]
row = len(name) # 行
col = len(name[0]) # 列
print(name)
row,col
'''
结果:
[['张飞', '刘备'], ['关羽', '大乔'], ['诸葛亮', '曹操']]
(3, 2)
'''
遍历整个列表
使用for循环遍历所有元素。
names = ["张飞","刘备","关羽"]
for name in names:
print(name)
'''
张飞
刘备
关羽
'''
创建数值列表
使用range()函数创建数字列表
range() 生成一系列的数字。
for i in range(1,4):
print(i)
'''
1
2
3
'''
如果将range() 作为list() 的参数,输出将为一个数字列表。
numlists = list(range(1,4))
print(numlists)
'''
[1, 2, 3]
'''
设置range()的步长:
even_numbers = list(range(2,11,2))
print(even_numbers)
'''
[2, 4, 6, 8, 10]
'''
对数字列表的运算
对数字列表元素进行运算:
numbers = list(range(1,5))
squares = []
for number in numbers:
squares.append(number**2)
print(numbers)
print(squares)
对数字列表执行简单的统计计算:
numbers = list(range(1,5))
print(numbers)
print(min(numbers))
print(max(numbers))
print(sum(numbers))
'''
[1, 2, 3, 4]
1
4
10
'''
列表解析
squares = [num**2 for num in list(range(1,5))]
print(squares)
# [1, 4, 9, 16]
切片
处理列表的部分元素。
创建切片
names = ["张飞","刘备","关羽","周瑜","曹操","孙权","孙策"]
print("输出前三个:")
print(names[0:3])
print("\n输出前三个:")#没有指定起始索引,Python从列表开头开始提取
print(names[:3])
print("\n从第四个到最后:")#没有指定终止索引,Python提取到最后一个元素
print(names[3:])
print("\n最后三个:")
print(names[-3:])
'''
输出前三个:
['张飞', '刘备', '关羽']
输出前三个:
['张飞', '刘备', '关羽']
从第四个到最后:
['周瑜', '曹操', '孙权', '孙策']
最后三个:
['曹操', '孙权', '孙策']
'''
遍历切片
同遍历列表,使用for循环
names = ["张飞","刘备","关羽","周瑜","曹操","孙权","孙策"]
print("输出前三个:")
#print(names[0:3])
for name in names[0:3]:
print(name)
'''
输出前三个:
张飞
刘备
关羽
'''
复制列表
使用且切片索引为 :[:]
names = ["张飞","刘备","关羽","周瑜","曹操","孙权","孙策"]
copyed_names = names[:]
print(names)
print(copyed_names)
'''
['张飞', '刘备', '关羽', '周瑜', '曹操', '孙权', '孙策']
['张飞', '刘备', '关羽', '周瑜', '曹操', '孙权', '孙策']
'''
元组
列表是可以修改的。而不可变的列表被称为元组。
元组看起来像列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。相比于列表,元组是更简单的数据结
创建:如创建一个不变的矩形
dimensions = (200, 50)# 定义一个矩形的长宽
print(dimensions[0])# 输出长
print(dimensions[1])# 输出宽
'''
200
50
'''
改变元素的取值:不可以想列表一样直接更改,而是要重新定义一个元组。
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
'''
Original dimensions:
200
50
Modified dimensions:
400
100
'''
50)# 定义一个矩形的长宽
print(dimensions[0])# 输出长
print(dimensions[1])# 输出宽
‘’’
200
50
‘’’
改变元素的取值:不可以想列表一样直接更改,而是要重新定义一个元组。
```python
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
'''
Original dimensions:
200
50
Modified dimensions:
400
100
'''