01.列表
# 01.列表常用方法
# 1.1 append
#1. append用于在列表末尾追加新的对象
a = [1,2,3]
a.append(4) #the result : [1, 2, 3, 4]
1
2
3
2
3
# 1.2 count
#2. count方法统计某个元素在列表中出现的次数
a = ['aa','bb','cc','aa','aa']
print(a.count('aa')) #the result : 3
1
2
3
2
3
# 1.3 extend
#3. extend方法可以在列表的末尾一次性追加另一个序列中的多个值
a = [1,2,3]
b = [4,5,6]
a.extend(b) #the result :[1, 2, 3, 4, 5, 6]
1
2
3
4
2
3
4
# 1.4 index
#4. index函数用于从列表中找出某个值第一个匹配项的索引位置
a = [1,2,3,1]
print(a.index(1)) #the result : 0
1
2
3
2
3
# 1.5 insert
#5. insert方法用于将对象插入到列表中
a = [1,2,3]
a.insert(0,'aa') #the result : ['aa', 1, 2, 3]
1
2
3
2
3
# 1.6 pop
#6. pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值
a = [1,2,3]
a.pop() #the result : [1, 2]
a.pop(0)
1
2
3
4
2
3
4
# 1.7 remove
#7. remove方法用于移除列表中某个值的第一个匹配项
a = ['aa','bb','cc','aa']
a.remove('aa') #the result : ['bb', 'cc', 'aa']
1
2
3
2
3
# 1.8 reverse
#8. reverse方法将列表中的元素反向存放
a = ['a','b','c']
a.reverse() #the result : ['c', 'b', 'a']
1
2
3
2
3
# 1.9 sort
#9. sort方法用于在原位置对列表进行排序,意味着改变原来的列表,让其中的元素按一定顺序排列
a = ['a','b','c',1,2,3]
a.sort() #the result :[1, 2, 3, 'a', 'b', 'c']
1
2
3
2
3
# 1.10 enumerate
li = [11,22,33,44,55,66]
for k,v in enumerate(li, 1): # 1.代表 k 从哪个数字开始
print(k,v)
'''
1 11
2 22
3 33
'''
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 1.11 range和xrange
指定范围,生成指定的数字
注:python3中的range类似python2中的xrange,比如a = range(1,4) : a返回的不是列表对象而是一个可迭代对象(<class 'range'>)
#1、range根据start与stop指定的范围以及step设定的步长,生成一个序列:range([start,] stop[, step])
#2、xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器
for i in range(1,10,2):
print(i)
1
2
3
4
2
3
4
# 1.12 列表去空
# 法1:
filter(None, your_list)
# 法2:
while '' in your_list:
your_list.remove('')
# 法3:
your_list = [x for x in your_list if x != '']
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 02.元祖
- **元组定义:**元组和列表一样,也是一种序列,唯一的不同是元组不能修改。
# 2.1 创建元组
#1. 创建元组
a = (1,2,3,4,5,6)
#2. 将列表转换成元组
tuple([1,2,3,4]) #the result : (1, 2, 3, 4)
1
2
3
4
2
3
4
- 元祖常用方法
t=(1,2,3,1)
print( t.count(1) ) # 2 : 元祖中出现 1 的次数为2次
print( t.index( 3 ) ) # 2 : 元祖中出现三的索引位置为 2
1
2
3
2
3
# 2.2 列表和元组常用函数
方法 | 作用 |
---|---|
com(x,y) | 比较两个值 |
len(seq) | 返回序列的长度 |
list(seq) | 把序列转换成列表 |
max(args) | 返回序列或者参数集合中得最大值 |
min(args) | 返回序列或者参数集合中的最小值 |
reversed(seq) | 对序列进行反向迭代 |
sorted(seq) | 返回已经排列的包含seq 所有元素的列表 |
tuple(seq) | 把序列转换成元组 |
# 03.列表和元祖区别
# 3.1 列表和元祖区别
可变不可变:
列表可变,元组不可变,除非整体替换存储差异:
对列表和元组,我们放置了相同的元素,但是元组的存储空间,却比列表要少16字节- 列表为了减小每次增加/删减操作时空间分配的开销,Python每次分配空间时都会额外多分配一些
- 元组比列表的访问和处理速度快。
- 列表不能作为字典的键,而元组可以
# 3.2 举例
元祖内存长度大小固定,所以无法进行切片
>>> t = (1,2,3)
>>> t[0] = 100 # 元祖中无法进行切片,因为元祖中长度是固定的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
1
2
3
4
5
2
3
4
5
- 存储差异:
放置了相同的元素,但是元组的存储空间,却比列表要少16字节
>>> l = [1, 2, 3]
>>> l.__sizeof__()
64
>>> tup = (1, 2, 3)
>>> tup.__sizeof__()
48
1
2
3
4
5
6
2
3
4
5
6
# 3.3 使用场景
需要返回的是一个
地点的经纬度
,然后直接传给前端渲染,那么肯定选用元组更合适。式化字符串,格式化字符串后面的()本质上就是一个元祖
print("%s 年龄是 %d 身高是 %。2f" %("小明",18,1.75))
1
上次更新: 2024/3/13 15:35:10