对于每种编程语言一般都会规定一些容器来保存某些数据,就像java的集合和数组一样python也同样有这样的结构
而对于python他有四个这样的内置容器来存储数据,他们都python语言的一部分可以直接使用而无需额外的导入
一.列表(list)
  列表一种跟java和c中的数据很像的一种数据结构,他都保存一系列相似,且有序元素的集合,不过不同的列表中的元素可以不同一种数据类型,且列表的长度可变的
  可以动态的增加可减少这一则有像java中的stringBuilder对象,列表中有一值得注意的在对列表进行复制,不能简单的使用赋值语句,这样会使得两个变量同时指向一个列表,当一个改变时另一个变量的值也会改变,正确的复制方法用copy()方法来进行复制
  关于一个存储结构增删查看则其必备的功能:
    1.列表元素的增加
      append的方法将所要加的元素直接加到先前列表的末尾的方法,在增加的同时还会使得列表得长度增加
      extend方法将一个列表中得所有元素加拓展到另一个列表的末尾将两个列表合并为一个列表
      insert方法将一个元素入到指定的位置,但值得注意的insert方法不能到列表的末尾
    2.列表元素的删除
      remove删除列表中指定的值,如果列表中没有remove参数中指定的值解释器将会报错
      pop删除指定索引位置对应的对象,如果pop方法中没有参数则其默认的删除列表的最后的一个对象,该方法的返回值就对应删除的对象,若其指定的索不存在      时解释器同样会报错
    通过一个简单的例子来说明以上方法的使用:
#在Don'tpanic变为ontap
phrase="Don'tpanic"
plist=list(phrase)#将phrase表示的字符串转化为列表
print(phrase)#将该字符串输出
print(plist)#结果为['D','o','n',"'",'t','','p','a','n','i','c']
ve("'")#将‘在列表中删除
foriinrange(3):
plist.pop()#将列表末尾的3个字符给删除,'n','i','c'
plist.pop(0)#将plist中索引对应的对象删除,也就D
#此时list中的值为['o','n','t','','p','a']
d([plist.pop(5),plist.pop(4)])#将p和a的位置交换
plist.insert(2,plist.pop(3))#将空格入到对应索引为2的对象前
phrase=''.join(plist)#将列表转化为字符串
print(phrase)
 3.列表元素的查看:
      值得说明的列表的查看和数组相似,都支持下标查看不过不同的列表的查看功能比数组更多
      a.中括号加下标可以查看列表中的任意元素且元素的下标也都从0始的,这与数组相同,但不同的数组中的下标不能为负数,而列表可以 
      其表示的从右到左,而正数则从左到右
      b.列表中支持切片查看,也就查看某一段元素其用法为:list[始位置:结束位置:步长]其中所有元素都可以省,只需要在括号中有一个元素即可例如:
       list[::2]表示始为0,结束为列表尾,步长为2
   们任然以一段简单的代码来展示其用法:
phrase="Don'tpanic"
plist=list(phrase)
new_phase=''.join(plist[1:3])#在列表中截取on
print(new_phase)
new_phase=new_phase+''.join([plist[5],plist[4],plist[7],plist[6]])
#切片的实例,以及负数
字符串截取后四位方法plist[-1]#c
temp=plist[5:1:-1]#['','t',"'",'n']当步长为负数时其结果时从右到左遍历
temp2=plist[::2]#['D','n','t','p','n','c'],从头遍历到尾步长为2
二.字典(dict)
  字典使用来保存一个键值对集合,其中每个的键都有一个与之对应的值,通常们把字典称为关联数组,如果你学过java的那么对字典就不会陌生了因为它其实就java中的set集合,python的字典无序的它不会保留你入时的顺序,同时由于字典使用的一种高度优化的散列算法所以即使没有顺序字典一样能快速的访问与一个键相关的值
1字典的定义:
其结构为{键1:值1,键2:值2},可以看出字典的始和结束都用括号键和值用冒号隔,不同键值对之间用逗号分隔,其中值可以为列表,另一个字典
2字典的增加:
字典时一个动态的集合他可以在键对不存在时入新的键值对,但字典中键必须进行初始化后才可以引用例如:在一个商店中你不知到你的商店中的苹果又没  有时
你不可以直接的使用苹果这个值而当你像时也需要查明商店中否有这样物品,对于字典则无需这样。因为字典已经分装好了一个setdefault()方法只需直接调用即可
用一段简单代码展示:
#字典的键值对
fruit={}
#当直接使用不存在的键值对时
fruit['apple']+=1#没有对该键初始化而直接使用会出现keyError
#当不使用setdefault方法时动态的增加键值对
if'apple'notinfruit:
fruit['apple']=0#初始化键值
fruit['apple']+=1#增加苹果的量
print(fruit['apple'])
#使用setdefault时,其实就设置一个默认值,确保使用时这个使用的键存在即可
fruit.setdefault('apple',0)#当键存在时这个语句没有任何作用,相当于上面选择的分装
fruit['apple']+=1
print(fruit['apple'])
3字典的遍历:
对于一个集合来说们一般都会采用集合来遍历其中的所有元素但对于字典来说单单只用循环的话并不够方便因为仅仅只用循环的话解释器只会处理字典的键
对于其值任然需要用键来查值,对于这种问题python了一个items()的方法使得可以直接使用循环变量来访问字典的键和值
通过一段简单的代码说明:
fruit={'apple':10,'pears':5,'bananas':20,'orange':4}
#直接使用for循环遍历
foriinfruit:
print("种类",i,"数量",fruit)
#使用items方法遍历
fori,vinfruit.items():
print("种类",i,"数量",v)
四.元组(tuple)
1元组的定义:
元组与列表密切相关列表用中括号定义而元组则用小括号定义(元素1,元素2,元素3,.....),值得注意的当只有一个对象并不能仅仅(对象)这样定义并不元组,正确的定义方法(对象,)这样才元组
在最后有必要说明一下:在这四个内置结构为空时的解释器的表示方法:1.空列表[]2.空字典{}3.空集合set()4.空元组()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。