python集合数据结构_Python基本数据结构string,list,tuple,set,dictionary简介

string string,list,tuple都属于序列类型,因此他们都是有序的。string的方法很多,此处仅列出一些常用的。tuple和string都是不可变的。

字符串的基本操作:+,*(重复),len(), 索引,切片,以及for遍历。

>>>a="hello"

>>>b="world"

>>>a+b

helloworld

>>>a*3

helloworldhelloworldhelloworld

>>>a[1:3]

el

常用的字符串操作方法:

1.字符串大小写操作

s.lower() #小写

s.upper() #大写

s.swapcase() #大小写转换

s.capitalize() #首字母大写

2.字符串输出对齐操作

s.ljust(width[,fillchar]) #输出width个字符,左对齐,不足部分用fillchar填充,默认为空格

s.rjust(width[,fillchar]) #右对齐,同上

s.center(width[,fllchar]) #中间对齐,同上

s.zfill(width) #把s变为width长,不足部分0不足

3.字符串中的搜索和替换

s.find(substr[,start[,end]]) #返回s中substr第一次出现的索引,若s中没有substr则返回-1

s.index(substr[,start[,end]]) #与find相同,只是若s中若没有substr怎么返回一个错误

s.rfind(substr[,start[,end]]) #从右边开始找,返回第一个,若无则返回-1

s.rindex(substr[,start[,end]]) #同上

s.count(substr[,start[,end]]) #返回s中substr的个数

s.replace(old,new[,count]) #替换,count为替换次数

s.strip([char]) #把s首尾空格符去掉,若char不为空,则把s中的char去掉

s.rstrip([char]) #同上

s.lstrip([char]) #同上

s.expandtabs([tabsize]) #把s中一个tab字符替换为tabsize个空格字符

4.字符串的分割和组合

s.split([sep[,maxlist]]) #以sep为分隔符切割s并返回一个list,maxlist表示分割次数,默认sep为空白字符

s.rsplit([sep[,maxlist]]) #同上

sep.join(sequence) #把sequence用sep字符连接起来

s.maketrans(from,to) #返回一个256个字符组成的翻译表,其中from中的字符被一一对应的转换为to中的字符,故from须与to等长

s.tanslate(table[,deletechars])

#字符串中的一些判断函数

s.startswith(str[,start[,end]]) #判断s是否以str开头

s.endwith(str[,start[,end]]) #同上

s.isalnum() #是否全为数字或者字母

s.isalpha(), s.isdigit(),s.isspace(), s.islower(), s.isupper(), s.istitle()(是否首字母大写)

list列表是Python中最常用的数据类型之一,list是可变的。常用方法也有很多

list.append() #把一个元素添加到列表的结尾

list.extend() #将一个给定列表中的所有元素都添加到另一个列表中

list.insert(i,x) #在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)

list.remove(x) #删除列表中值为 *x* 的第一个元素。如果没有这样的元素,就会返回一个错误

list.pop([i]) #从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素

list.clear() #从列表中删除所有元素,相当于 del a[:]

list.index(x) #返回列表中第一个值为 *x* 的元素的索引,如果没有匹配的元素就会返回一个错误

list.count(x) #统计x出现的次数

list.sort() #对列表中的元素就地进行排序,改变原列表

list.reverse() #就地倒排列表中的元素,改变原序列

list.copy() #返回列表的一个浅拷贝,等同于 a[:]

值得注意的是list.sort()会原地改变改变list,而sorted(list)则会返回一个新的list,需赋值才能使用

tuple元组,不同于list,元组用()包着,元组是不可变的。

一对空的括号可以创建空元组;要创建一个单元素元组可以在值后面跟一个逗号(在括号中放入一个单值不够明确)。丑陋,但是有效。

元组操作方法较少如索引等。

set 集合最大的特点是无序且不含重复元素,常用来消除重复元素。

集合对象还支持 union(联合),intersection(交),difference(差)和sysmmetric difference(对称差集)等数学运算。

大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {},后者用于创建空字典。

集合支持各种预算,如并,交,差以及对称差等:

>>> a=set(range(5))

>>> b=set(range(10))

# 并集运算

>>> a | b # a.union(b)

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

# 交集运算

>>> a & b # a.intersection(b)

{0, 1, 2, 3, 4}

# 差集运算

>>> a - b # a.difference(b)

set() # 空集

>>> b - a

{5, 6, 7, 8, 9}

# 对称差,即并集减去交集

>>> a ^ b # a.symmetric_difference(b)

{5, 6, 7, 8, 9}

集合也有自己的添加删除元素的方法,分别为add,update,remove

# add方法向将元素作为一个整体添加进去,相当于list中的append,而update则相当于list中的extend

>>> a=set(list('asdf'))

>>> a.add('gggg')

>>> a

{'a', 'd', 'f', 'gggg', 's'}

>>> a.update('gggg')

{'a', 'd', 'f', 'g', 'gggg', 's'}

>>> a.remove('a')

{'d', 'f', 'g', 'gggg', 's'}

集合运算

dictionary字典是Python中另一种重要的数据类型,因其查找是基于键值对,故查找速度远远大于列表等的二叉树查找。

对一个字典执行list(d.items())将返回一个字典中所有键值对组成的无序列表,可用sorted()函数以键或值来进行排序。

list(d.keys()) #返回字典键组成的一个无序列表

list(d.values()) #返回字典值组成的一个无序列表

list(d.items()) #返回字典中所有键值对组成的无序列表

sorted(d.items[0][0]) #返回字典中所有键值对组成的经过排序的列表的第一个键

sorted(d.items(), key=lambda d:d[0], reverse = False) #按键进行从小到大排序

sorted(d.items(), key=lambda d:d[1], reverse = False) #按值进行从小到大排序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值