1、元组和列表的区别
元组与列表相同,也是容器对象,可以存储不同类型的内容。元组与列表有两个不同点。
(1)元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;
(2)元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。用于列表的排序、替换、添加等方法也不适用于元组,适用于元组的主要运算有元组的合并、遍历、求元组的最大值和最小值等操作方法。
2、可变类型和不可变类型
(1)可变数据类型
可变数据类型是指变量所指向的内存地址处的值是可以被改变的:Set(集合)、List(列表)、Dictionary(字典)
(2)不可变数据类型:在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值。所谓不可变就是说, 我们不能改变这个数据在内存中的值。如皋真要修改,只能替换修改,不能指定位置修改。包括:Number(数字)、String(字符串)、Tuple(元组)
3、字符串和列表相互转换
(1)字符串转列表
- list(str):按单个字符进行切割,每个字符作为一个列表元素
- str.split(‘字符’):以某个字符进行切割,切割产生的子串作为列表元素
str1 = '123 789'
print(str1.split(' '))
print(list(str1))
['123', '789']
['1', '2', '3', ' ', '7', '8', '9']
(2)列表转字符串
a = ['a', 'b', 'c', 'd']
print(''.join(a))
print('*'.join(a))
abcd
a*b*c*d
4、sorted(list)和list.sort()用法
(1)list.sort(): 会改变原有列表
a = [2, 5, 1, 3]
a.sort()
print(a)
[1, 2, 3, 5]
(2)sort(list):不改变原有的列表
a = [2, 5, 1, 3]
print(sorted(a))
print(a)
[1, 2, 3, 5]
[2, 5, 1, 3]
5、reversed(list)和list.reverse()用法
(1)list.reverse()
a = [1, 2, 3, 4]
a.reverse()
print(a)
[4, 3, 2, 1]
(2)reversed(list)
a = [1, 2, 3, 4]
b = reversed(a) ##reversed()生成的是一个可迭代对象,并不是列表
print(b)
for i in b:
print(i)
<list_reverseiterator object at 0x000001110C7A3DC8>
4
3
2
1
for i in reversed(range(5)):
print(i)
4
3
2
1
0
(3)list[::-1]:可以实现将list反转
list的[]中有三个参数,用冒号分割
list[param1:param2:param3]
param1,相当于start_index,可以为空,默认是0
param2,相当于end_index,可以为空,默认是list.size
param3,步长,默认为1。步长为-1时,返回倒序原序列