python数据结构list,string,tuple,set,dictionary常用操作
1.列表list[]#
上述的list.index(item)
,与string.find(item)
类似,find还可以加参数,从指定位置查找返回索引,find(item,start)
-
list与range快速生成list的方法:
copylst=list(range(10)) #lst=[0,1,2,3,4,5,6,7,8,9]
list(range(5,10)) #[5,6,7,8,9]
list(range(5,10,2)) #[5,7,9]
list(range(10,1,-2)) #[10,8,6,4,2]
-
生成列表的其他写法:
copylst=[x for x in range(5)] #lst=[0,1,2,3,4]
后面可以跟条件,例如:
copylst2=[x for x in range(6) if x%2 ] #lst2=[1,3,5]
-
合并列表的一些方法:
copyrel=lst.extend(range(4)) #向其中添加指定范围元素
rel=lst.extend([3]*5) #重复向其中添加指定元素
-
向有序列表插入元素:
copyimport bisect
mylst=[1,2,3,40]
bisect.insort(mylst,2) #mylst=[1,2,2,3,40]
#切片替换,类似列表部分(切片)与另一列表连接,不过更方便
mylst=[1,2,3,4,]
mylst[:2]=["ab","bc","cd"] #mylst=["ab","bc","cd",3,4]
以上切片赋值,可以非对等进行,需要注意。虽然可以,但是尽量避免
-
列表元素的组合,还有排列permutations用法类似
combinations(iterable,r)
#返回iterable中长度为r的元组组合,返回顺序按iterable中元素顺序排列,注意:没有重复的元素
copyfrom itertools import combinations
for comb in combinations([1,2,3],2)
print(comb)
结果
copy(1,2)
(1,3)
(2,3)
2-字符串string:#
与list不同的是,字符串内容不可改变
copynm='Bob'
nm[0] #'B'
nm[0]='C' # error,不支持赋值
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
-
sr.replace(old,new,times)
copysr='abcdefg'
sr.replace('d','8') #sr='abc8efg',将字符串中的字符'd'全部 全部替换成字符'8',
#第三个参数表示替换指定次数
sr='abddfdg'
sr.replace('d','8',2) #'ab88fdg' 指定替换2次
-
sr.index(tiem)
copystr1='abcdcef'
str1.index('c') #2,只会返回首个匹配的元素索引
3-元组tuple():#
元组的操作与list操作类似,同样地,元组的内容也是不能改变,如果需要改变元组的内容,可以将元组(tuple)改变为列表(list),值修改后再改变回元组即可
4-集合set():#
对于去掉重复的元素,直接set(mylist)取到结果,
集合,无序,无重复元素
定义一个集合{}表示:
oneset={1,2,3,4}
由于set无序,pop()的结果具有不确定性
5-字典{}#
copyinfo={'name':'Bob','add':'backstreet','code':'101010'}
info['name'] #'Bob'
infolst=list(info.items()) #[('name', 'Bob'), ('add', 'backstreet'), ('code', '101010')],转成列表,键-值-->元组,元素
infolst[0] #('name','Bob')
infolst[0][1] #'Bob'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix