请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

【Python】存储类型都有那些,例子学习

2023-07-13

python中的存储类型

1.列表

>>> [1,2,3,4,5,'Curry']
[1, 2, 3, 4, 5, 'Curry']
>>> test=[1,2,3,4,5,'Curry']
>>> print(test)
[1, 2, 3, 4, 5, 'Curry']
>>> for i in test:
	print(i)

1
2
3
4
5
Curry

1.下标

​ 下标就是列表中对应数值的位置,在计算机世界里数字是从0开始的,所以我们的下标也是从0开始计数的。

列表:   [1,2,3,4,5,'curry']
对应下标:[0,1,2,3,4,   5]

2.切片

​ 切片的作用就是将列表内的内容,根据自己的需求来进行截取出来

>>> print(test[0:3])
[1, 2, 3]
>>> print(test[1])
2
>>> print(test[:])
[1, 2, 3, 4, 5, 'Curry']
>>> print(test[1:])
[2, 3, 4, 5, 'Curry']
>>> print(test[:3])
[1, 2, 3]
>>> print(test[::1])
[1, 2, 3, 4, 5, 'Curry']
>>> print(test[::3])
[1, 4]
>>> print(test[::2])
[1, 3, 5]
>>> print(test[1::2])
[2, 4, 'Curry']

3.增删改查

1.增加

append():添加单个元素

extend():添加多个元素

>>> heros=['钢铁侠','蜘蛛侠','绿巨人']
>>> heros.append('黑豹')
>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
>>> heros.extend(['灭霸','雷神'])
>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神']
2.切片式添加内容
>>> heros[len(heros):] = ['唐三']
>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神', '唐三']
>>> heros[len(heros):]=['张三','李四']
>>> print(heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神', '唐三', '张三', '李四']
3.插入

insert():插入元素

​ 格式:insert(下标位置,插入元素)

>>> s = [1,2,3,4,5]
>>> s.insert(5,6)
>>> print (s)
[1, 2, 3, 4, 5, 6]
>>> s.insert(0,0)
>>> print (s)
[0, 1, 2, 3, 4, 5, 6]
>>> s.insert(len(s),7)
>>> print(s)
[0, 1, 2, 3, 4, 5, 6, 7]
4.删除

remove():删除单个元素,如果列表内存在多个重复内容,则删除下标位置最近的一个

pop():根据下标位置删除

clear():清空列表所有内容

>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神', '唐三', '张三', '李四']
>>> heros.remove('张三')
>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神', '唐三', '李四']
>>> heros.pop(len(heros)-1)
'李四'
>>> print (heros)
['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '灭霸', '雷神', '唐三']
>>> heros.clear()
>>> print(heros)
[]
5.改

​ 根据列表的下标进行元素替换

>>> heros=['猪猪侠','菲菲','小呆呆']
>>> heros[0]='juju-bay'
>>> print (heros)
['juju-bay', '菲菲', '小呆呆']
>>> heros[:2]=['超人强','肥波']
>>> print (heros)
['超人强', '肥波', '小呆呆']

​ 根据大小进行排序

​ 使用sort函数可以直接将列表内的内容排序

>>> nums=[3,2,4,5,2,1,4,5,6,7,8]
>>> nums.sort()
>>> nums
[1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 8]
>>> nums.reverse()
>>> nums
[8, 7, 6, 5, 5, 4, 4, 3, 2, 2, 1]
>>> nums=[3,2,4,5,2,1,4,5,6,7,8]
>>> nums.sort(reverse=True)
>>> nums
[8, 7, 6, 5, 5, 4, 4, 3, 2, 2, 1]
6.查

​ index():查询元素的下标

​ count():查询元素在列表中出现的次数

//查元素的下标
>>> print (heros)
['超人强', '肥波', '小呆呆']
>>> heros.index('小呆呆')
2
>>> heros[heros.index('小呆呆')]='菲菲'
>>> heros
['超人强', '肥波', '菲菲']

//查元素的数量
>>> nums.count(2)
2
>>> nums
[8, 7, 6, 5, 5, 4, 4, 3, 2, 2, 1]
7.拷贝列表

​ copy():复制列表

>>> heros_1=heros.copy()
>>> heros_1
['超人强', '肥波', '菲菲']

//切片拷贝列表
>>> heros_2=heros[:]
>>> heros_2
['超人强', '肥波', '菲菲']

2.二维列表

>>> test=[[1,2,3],['a','b','c'],['A','B','C']]
>>> print (test[0][2])
3
>>> print (test[2][0])
A

创建一个二维列表

>>> A = [0]*3
>>> print (A)
[0, 0, 0]
>>> for i in range(3):
	A[i]=[0] * 3

	
>>> print (A)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]


di'er'zhon
>>> A = [[0]*3 for i in range(3)]
>>> print (A)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

3.拷贝列表类型

1.浅拷贝

​ 一维列表的浅拷贝:可以发现当b赋予了a的值,对a的值做出了改变,b的值也随着改变,这就叫做浅拷贝

>>> a=[1,2,3]
>>> b=a
>>> a[1]=4
>>> print (b)
[1, 4, 3]

​ 二维列表浅拷贝:

>>> a=[[1,2,3],[1,2,3]]
>>> b=a.copy()
>>> a[1][1]=4
>>> print(a)
[[1, 2, 3], [1, 4, 3]]
>>> print(b)
[[1, 2, 3], [1, 4, 3]]

2.深拷贝

​ 一维列表的深拷贝:可以发现当b赋予了a的值,对a的值做出了改变,b的值没有改变,这就叫做深拷贝

>>> a=[1,2,3]
>>> b=a.copy()
>>> a[1]=4
>>> print (a)
[1, 4, 3]
>>> print (b)
[1, 2, 3]

​ 二维列表的深拷贝:需要调用copy模块中的deepcopy方法

>>> a=[[1,2,3],[1,2,3]]
>>> import copy
>>> b=copy.deepcopy(a)
>>> a[1][1]=4
>>> print(a)
[[1, 2, 3], [1, 4, 3]]
>>> print(b)
[[1, 2, 3], [1, 2, 3]]

4.列表推导式

一维列表:

>>> oho = [1,2,3,4,5]
>>> for i in range(len(oho)):
	oho[i] = oho[i] * 2
>>> print (oho)
[2, 4, 6, 8, 10]

同等于

>>> oho = [1,2,3,4,5]
>>> oho=[i*2 for i in oho]
>>> print (oho)
[2, 4, 6, 8, 10]

二维列表:

>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix = [i[1] for i in matrix]
>>> print (matrix)
[2, 5, 8]

>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix = [matrix[i][i] for i in range(len(matrix))]
>>> print (matrix)
[1, 5, 9]

列表推导式第二种写法:

//创建一个二维列表
>>> S = [[0]*3 for i in range(3)]
>>> print (S)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
//一维列表
>>> even = [i for i in range(10) if i % 2 == 0]
>>> print (even)
[0, 2, 4, 6, 8]

将二维列表降级为一维列表

>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> flatten = [i for j in matrix for i in j]
>>> print (flatten)
[1, 2, 3, 4, 5, 6, 7

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部