Python基本数据结构string,list,tuple,set,dictionary简介

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

字符串的基本操作:+,*(重复),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)   #按值进行从小到大排序
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容