- 列表
1.1 列表的概念
列表(list)是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
list_01=['apple','orange',3,100,[2,'blue']] #列表演示:该列表包含了字符串、数字、子列表。
1.2 列表元素的访问
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
注意:索引从0开始
list_01=['apple','orange',3,100,[2,'blue']]
print(list_01[0])
print(list_01[1])
print(list_01[2])
print(list_01[4][0]) #注意此处访问了子列表的元素
依次得到:
apple
orange
3
2
1.3 列标元素的添加
1.3.1 append方法: 在列表末尾添加元素
names=['david','lucy','mike']
names.append('johnson')
print(names)
得到:
['david', 'lucy', 'mike', 'johnson']
1.3.2 insert方法: 在列表中插入元素(需要提供索引和所要添加的元素)
names=['david','lucy','mike']
names.insert(1,'johnson')
print(names)
得到:
['david', 'johnson', 'lucy', 'mike']
1.3.3 extend方法: 合并两个列表(需要提供待合并的列表)
names_01=['david','mike']
names_02=['lucy','johnson']
names_01.extend(names_02)
print(names_01)
得到:
['david', 'mike', 'lucy', 'johnson']
1.4 列表元素的删除
1.4.1 del语句:知道元素在列表中的位置(需要提供索引)
names=['david','lucy','mike']
del names[1]
print(names)
得到:
['david', 'mike']
1.4.2 remove方法:知道元素的名称
names=['david','lucy','mike']
names.remove('lucy')
print(names)
得到:
['david', 'mike']
1.4.3 pop方法:‘弹’出元素(需要提供索引)
names=['david','lucy','mike']
object=names.pop() #方法pop() 不加索引时可删除列表末尾的元素,并让你能够接着使用它。
print(object)
print(names)
得到:
mike
['david', 'lucy']
names=['david','lucy','mike']
object=names.pop(1) #方法pop() 加索引时可以弹出任意元素
print(object)
print(names)
得到
lucy
['david', 'mike']
1.5 列表的拷贝
深拷贝:包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变。
names=['david','lucy','mike']
names_copy=names[:] #创建列表names的副本names_copy
print(names)
print(names_copy)
得到:
['david', 'lucy', 'mike']
['david', 'lucy', 'mike']
浅拷贝:没有拷贝子对象,所以原始数据改变,子对象会改变。
names=['david','lucy','mike']
names_copy=names #这种语法实际上是让Python将新变量names_copy 关联到包含在names中的列表,因此这两个变量都指向同一个列表。对其中一个列表的操作将影响另一个列表。
names.pop()
print(names)
print(names_copy)
得到:
['david', 'lucy']
['david', 'lucy']
1.6 遍历列表:for循环
names=['david','lucy','mike']
for name in names:
print(name)
得到:
david
lucy
mike
1.7 列表的切片
names=['david','lucy','mike','johnson']
print(names[:]) #打印整个列表
print(names[1:3]) #打印第1至2个元素
print(names[:2]) #没有指定第一个索引,Python将自动从列表开头开始
print(names[1:]) #没有指定第二个索引,Python将自动至最后一个元素截止
print(names[-3:]) #打印最后三个元素
依次得到:
['david', 'lucy', 'mike', 'johnson']
['lucy', 'mike']
['david', 'lucy']
['lucy', 'mike', 'johnson']
['lucy', 'mike', 'johnson']
1.8 其他常用的列表方法
1.8.1 排序问题
names=['david','lucy','mike','johnson']
names.sort() #按照字母顺序排序
print(names)
nums=[1,4,5,3,10,7,0] #按照数字大小排序
nums.sort()
print(nums)
依次得到:
['david', 'johnson', 'lucy', 'mike']
[0, 1, 3, 4, 5, 7, 10]
names=['david','lucy','mike','johnson']
names.sort(reverse=True) #按照字母顺序反向排序
print(names)
nums=[1,4,5,3,10,7,0]
nums.sort(reverse=True) #按照数字大小反向排序
print(nums)
依次得到
['mike', 'lucy', 'johnson', 'david']
[10, 7, 5, 4, 3, 1, 0]
names=['david','lucy','mike','johnson']
print(sorted(names)) #使用sorted进行临时排序,原列表依然存在。
print(names)
nums=[1,4,5,3,10,7,0]
print(sorted(nums)) #使用sorted进行临时排序,原列表依然存在。
print(nums)
依次得到:
['david', 'johnson', 'lucy', 'mike']
['david', 'lucy', 'mike', 'johnson']
[0, 1, 3, 4, 5, 7, 10]
[1, 4, 5, 3, 10, 7, 0]
1.8.2 倒着打印列表(注意: 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序)
names=['david','lucy','mike','johnson']
names.reverse()
print(names)
得到:
['johnson', 'mike', 'lucy', 'david']
1.8.3 确定列表的长度
names=['david','lucy','mike','johnson']
print(len(names))
得到:
4
1.8.4 数字列表的生成
for num in range(1,11):
print(num)
得到:
1
2
3
4
5
6
7
8
9
10
#输出1-10的平方:
values=[]
for num in range(1,11):
result=num**2
values.append(result)
print(values)
得到:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2 元祖
2.1 元祖的概念:不可改变的列表,用()表示。
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:
#元祖的创建和修改演示
original_tuple=(1,2,3,4)
modified_tuple=(1,2,3,4,5)
print(original_tuple)
print(modified_tuple)
依次得到:
(1, 2, 3, 4)
(1, 2, 3, 4, 5)
2.2 序列的转化
nums_01=(1,2,3,4)
print(nums_01)
print(list(nums_01))
nums_02=[5,6,7,8]
print(nums_02)
print(tuple(nums_02))
string=’hello world‘
print(list(string))
nums=['1','2','3','4']
a=''.join(nums)
print(a)
依次得到:
(1, 2, 3, 4)
[1, 2, 3, 4]
[5, 6, 7, 8]
(5, 6, 7, 8)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
1234
2.3 元祖的常用方法:同列表
2.4 其他常用的序列方法:求最值、求和
a=[1,2,3,4,5,6]
print(max(a))
print(min(a))
print(sum(a))
依次得到:
6
1
21
作业:定义一个列表,包含自己的家庭成员,并在指定位置插入给定元素,例如你的男女朋友名称等。再将男女朋友名字移除等操作。
my_family=['mom','dad','sister','brother']
my_family.pop()
print(my_family)
my_family.append('girlfriend')
print(my_family)
del my_family[0]
print(my_family)
my_family.insert(0,'mom')
print(my_family)
依次得到:
['mom', 'dad', 'sister']
['mom', 'dad', 'sister', 'girlfriend']
['dad', 'sister', 'girlfriend']
['mom', 'dad', 'sister', 'girlfriend']