目录


前言

书接上文

Python核心数据类型详解:字符串与列表操作全攻略-CSDN博客文章浏览阅读1k次,点赞19次,收藏6次。本文系统讲解Python数字型(整型/浮点/布尔)、字符串(切片、转义、26种函数)和列表(访问/切片)三大核心数据类型,通过代码示例解析小整数池、浮点精度、字符串倒置、split分割等关键技术,提供标准库文档查阅方法,帮助开发者高效处理数值计算、文本操作与集合数据。 https://blog.csdn.net/qq_58364361/article/details/146035510?fromshare=blogdetail&sharetype=blogdetail&sharerId=146035510&sharerefer=PC&sharesource=qq_58364361&sharefrom=from_link


一、数据类型-列表

字符串不可以修改,但是列表可以

1.1列表的加法和乘法

+
两个列表拼接
* 复制多少次
list1 = [1, 3, 5]
list2 = [2, 4, 6]
print(list1 + list2)
print(list1 * 3)

1.2 列表相关函数

1.2.1 列表元素的增加

append 尾部增加
insert 指定位置增加
extend 把一个列表的所有元素添加到当前的列表
lst1 = [1,2,3,4,5]
lst2 = [6,7,8,9,10]
lst1.append(10)
print(lst1)
lst1.insert(1,11)
print(lst1)
lst1.extend(lst2)
print(lst1)


1.2.2 列表元素的删除 

remove 删除指定元素
pop 指定下标删除(不指定默认删除最后一个)
clear 删除列表中的所有元素
del关键字 删除整个列表
lst1 = [1,2,3,4,5,3]
lst1.remove(3) # 删除从左往右第一个3这个元素
print(lst1)
lst1.pop(0) # 删除位置0的元素,位置是从0开始数的 如果不指定坐标默认删除最后一个
print(lst1)
lst1.clear()# 清空列表的所有内容,所以返回一个空的
print(lst1)
del lst1
# print(lst1) lst3列表已经被删除,无法运行会报错


1.2.3 列表元素的修改

用下标或者切片的方式修改列表中的单个或多个元素

列表名[下标] = 新的元素内容

lst1 = [1,2,3,4,5,3]
lst1[0] = 2
print(lst1)
lst2 = [1,2,3,4,5,3]
lst2[0:6] = 3, 4, 5, 6, 7, 8 # 含左不含右
print(lst2)
lst3 = [1,2,3,4,5,3]
lst3[0:5] = 3, 4, 5, 6, 7, 8 # 此处应当注意在区间内的是修改,超出区间的会强行增加
print(lst3)

1.2.4 元素的查询

count()
返回列表 某元素 出现 次数
in 关键字
如果存在 返回 T rue , 否则 返回 F alse
not in
如果不存在 返回 T rue , 否则 返回 F alse
list5 = [11, 33, 55, 77, 55]
print(list5.count(55))
if 33 in list5:
    print("yes")
print(list5)


1.2.4 其它函数 

len 列表的元素个数
rev e r s e
反转列表元素
so r t
排序
copy 拷贝
list5 = [1,5,2,3,5,4,5,2,1,3]
a = len(list5)
print(a)
list5.reverse()
print(list5) #默认从小到大排序
list5.sort()
print(list5)
list5.sort(reverse = True) #从大到小排序
print(list5)
l1 = ["aba","cbcf","babdssdd","dd"]
l1.sort() #按首字母的ASCII值排序
print(l1)
l1.sort(key=len) #可以通过key指定排序方法,这里用的字符串长度
print(l1)
l2 = l1.copy()
print(l2)


1.2.5 列表可以嵌套并且访问

访问时先指定外层元素下标从而访问到内层列表元素嵌套多少层列表就需要指定多少层下标

l3 = [2, [33, 55], "fan"]
print(l3)
print(l3[1][1])


二、深拷贝和浅拷贝

浅拷贝创建了一个新对象,和原始对象的内容相同,但是其内部的可变元素是对原始对象中可变元素的引用,并不是新的独立对象。

深拷贝创建了一个新对象,其内部所有元素都是原始对象的副本。

浅拷贝在实际编程中更常见,更高效。

import copy
l1 = [[1,2,3], 88, "hello"]
l2 = l1.copy() #浅拷贝,跟随拷贝源的可变项变换
l3 = copy.deepcopy(l1) #深拷贝
print(l1)
print(l2)
print(l3)
l1[0][1] = 9
print(l1)
print(l2)
print(l3)


二、数据类型-元组

由()包裹,元祖不可修改

元组名 = (元素1,元素2, 元素3......)

t1 = (1, 3, 5)
print(t1)
print(type(t1))


2.1 元组的访问

按照从左向右访问时,下标从0开始;

从右向左访问,下标从-1开始

2.1.1 下标访问

t1 = (1, 3, 5)
print(t1[0])
print(t1[-1])


2.1.2 切片访问

元组名[开始:结束:步长]

访问时,包括起始位置不包括终止位置,且步长默认为1;如果没有给起始值,默认为元组开始位置,如果没有给终止值,默认为元组结束位置,此时访问包括终止位置

t1 = (1, 3, 5, 7, 9)
print(t1[::])
print(t1[::-1])
print(t1[0:2:])
print(t1[2:])
print(t1[-1:-3:-1])


2.2 元祖的加法和乘法

+ 两个元祖拼接
* 元祖复制多少次
t1 = (1, 3, 5, 7, 9)
t2 = (2, 4, 8, 10)
print(t1 + t2)
print(t2 * 3)


2.3 元祖的函数

len 计算元组中元素的个数
max 返回元组中的最大值
min 返回元组中的最小值
in 查找是否存在某元素,是打印true,否打印false
not in
del 删除元祖
t1 = (1, 3, 5, 7, 9)
print(len(t1))
print(max(t1))
print(min(t1))
print(3 in t1)
del t1
#print(t1) 因为del了,运行会报错


三、字符串、列表、元祖的共同点

都可以通过下标访问每一个元素

下标从左向右从0开始,从右向左从-1开始

共同的名字:序列

可变序列:列表

不可变序列:字符串、元祖


四、序列的操作

max,min 找出序列中的最大值、最小值
len 计算长度或元素个数
sum 求和
sorted 排序
reversed 序列反转
all 序列中每个元素是否都为真(是否有0和空格)
any 系列中任意元素是否为真(全为0或者空才是False)
zip 打包,多个序列对应位置元素打包一个元组
map 让序列内的每一个元素实现某种功能
enumerate 枚举
filter 过滤一遍每个元素

4.1 sum

t1 = (1, 3, 5, 7, 9)
print(sum(t1))
print(sum(t1, start=30)) #30加上求的和


4.2 sorted 

sorted(序列名,key,reverse) 排序

t1 = (1, 10, 5, 12, 9)
print(sorted(t1, reverse = True))


4.3 reversed 

reversed( ):序列反转返回一个迭代器需要强转for遍历

t1 = (1, 10, 5, 12, 9)
for i in reversed(t1):
    print(i, end=" ")
print()
print(tuple(reversed(t1)))


3.4 all和any 

all 和 any

t1 = (1, 10, 5, 12, 9)
print(all(t1))
t2 = (0, 10, 5, 12, 9)
print(all(t2))
print(any(t2))
print(any(t1))
t3 = ()
t4 = (0,0,0,0)
print(any(t3))
print(any(t4))


3.5 zip 

zip 

多个序列对应位置元素打包一个元组返回一个迭代器

元素个数不同的时候,以最少的为主

l1 = [1,2,3]
l2 = [2,2,2,24,52,62,27,28,29]
l3 = [31,32,33,34,35,36,337,38,39]
print(list(zip(l1,l2,l3)))


3.6 map 

 map(序列,功能)

序列每个元素指定一个函数返回迭代器

t1 = ("aaaa","dhfulads","hdfafhfuol")
print(tuple(map(len,t1)))


3.7 enumerate

枚举

序列下标元素元组形式组合返回迭代器

t1 = ("aaaa","dhfulads","hdfafhfuol")
print(tuple(enumerate(t1)))


3.8 filter 

filter 

根据提供的函数序列每个元素进行计算结果True元素迭代器形式返回


五、集合

由{ }包裹,无序的不重复的,分为可变集合和不可变集合。

可变集合内元素定义好之后不可修改,但是集合可以增加元素或者删除元素

元素的数据类型只能是数字、字符串、元祖

5.1 去重

# 去重
l1 = [2, 3, 2, 3, 2]
print(set(l1))


5.2 可变集合

集合名 = {元素1,元素2,元素3...... }

s1 = {1998, "emm", (11, 22), "fan"}
print(s1)
print(type(s1))


5.3 可变集合的增加

add() 添加一个元素

update() 添加多个元素值

s1 = {1998, "emm", (11, 22), "fan"}
s1.add("aaa")
print(s1)
s1.update({"aaa",(88, 99)})
print(s1)
s1.update("ab",(66, 77))
print(s1)


5.4 可变集合的删除

remove( ): 删除指定元素

discard():删除指定元素

pop():删除第一个

l1 = {12, 16, 18, 20}
l1.remove(12)
print(l1)
l2 = {12, 16, 18, 20}
l2.discard(12)
print(l2)
l3 = {12, 16, 18, 20}
l3.pop()
print(l3)


5.5 创建一个空集合

s3 = {}
print(type(s3))
s4 = set()
print(type(s4))


总结

        本文系统详解Python中列表、元组、序列通用操作及集合的核心用法。列表作为可变序列,支持增删改查操作,涵盖append、insert、extend等元素添加方法,remove、pop、clear等删除函数,以及切片修改、count统计等技巧,并通过深浅拷贝对比揭示数据引用差异。元组作为不可变序列,重点解析下标访问、切片操作及拼接特性,强调其适用于固定数据场景的优势。序列通用操作部分整合max、min、sum、sorted、zip、map等函数,结合enumerate索引枚举与filter过滤实现高效数据处理。集合部分聚焦去重功能,讲解可变集合的增删(add/update/discard)及空集合创建注意事项,通过对比列表、元组与集合的特性,帮助开发者根据需求选择合适的数据结构。全文通过代码示例与函数解析,提供从基础操作到进阶应用的完整知识体系。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐