设为首页 收藏本站
查看: 529|回复: 0

[经验分享] Python中常见的数据类型总结

[复制链接]
累计签到:3 天
连续签到:1 天
发表于 2015-11-30 07:16:50 | 显示全部楼层 |阅读模式
    Python提供多种数据类型来存放数据项集合,主要包括序列(列表list和元组tuple),映射(如字典dict),集合(set),下面对这几种一一介绍:
  一 序列
  1.列表list
  列表是一种有序的集合,相对于元组和字符串的不同是它其中的元素可变,可以随时添加和删除其中的元素。
  (1) 创建list
  在命令行中测试,如下:



>>> L1 = [1,2,3]
>>> L1
[1, 2, 3]
>>> L2 = ['abc']
>>> L2
['abc']
>>> L3 = ["a","b","c"]
>>> L3
['a', 'b', 'c']
  注意,字符串的一定要加引号。
  通过list对字符串创建列表非常有效,比如:



>>> L = list("Python")
>>> L
['P', 'y', 't', 'h', 'o', 'n']
  (2)访问list
  根据索引来访问,注意不能越界,这一点跟数组特别像:



>>> L[0]
'P'
>>> L[-1]
'n'
  (3)添加新元素
  用append()方法,把新元素追加到list的末尾;insert()可以将一个新元素添加到特定的位置。
  (4) 删除元素
  删除元素可以采用pop()方法,执行L.pop()删除list的最后一个元素,如果是特定位置的话可以采用pop(2),2表示的是位置。
  (5)替换
  替换很简单,直接索引就可以。
  (6)打印



>>> L = ['a','b','c']
>>> for i in L:
print(i)   
a
b
c
  
  2. tuple
  (1)创建
  与list所不同的是,tuple一般采用()括起来,命令行中测试,如下:



T= 1,2,3
>>> T
(1, 2, 3)
>>> T = (1,2,3)
>>> T
(1, 2, 3)
>>> T = "abc"
>>> T
'abc'
  创建空元组:T = ()
  定义一个元素的元组:



>>> T = (1)
>>> T
1
  这样运行了结果是对的,看起来也没错,但是这种定义其实并不正确,这种定义的不是tupel,而是1这个数,这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以定义含一个元素的元组时必须加一个逗号,如下:



>>> T = (1,)
>>> T
(1,)
  (2)访问
  直接索引就好,如下:



>>> T =(1,2,3)
>>> T[1]
2
  (3)更改
  上述定义的tuple是不变的,但是我们可以在tuple中定义list对其进行修改:



>>> T = (1,2,['a','b'])
>>> T[2][0]
'a'
>>> T[2][0] = 'c'
>>> T
(1, 2, ['c', 'b'])
  在tuple中,虽然元素不可以修改,但是我们可以对其进行连接组合:



>>> T1 = [1,2,3]
>>> T2 = [4,5,6]
>>> T3 = T1 + T2
>>> T3
[1, 2, 3, 4, 5, 6]
  
  3.字符串
  (1)创建



>>> str = "Hello Python"
>>> str
'Hello Python'
  (2)访问



>>> str[0]
'H'
  (3)相加



>>>str = "hello "
>>>str = "Python"
>>> str3 = str1 + str2
>>> str3
'Hello Python'
  
  4.通用的序列操作方法
  (1)索引
  在访问序列元素中用到,如下:



>>> L = ['a','b','c']
>>> L[1]
'b'
>>> T = (1,2,3)
>>> T[0]
1
>>> str = "Python"
>>> str[4]
'o'
  (2)分片
  分片用来访问一定范围内的元素,分片通常通过冒号相隔的两个索引来实现,常见的有如下几种:



>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = a[1:5]
>>> b
[1, 2, 3, 4]
>>> c = a[-3:-1]
>>> c
[7, 8]
>>> d = a[1:10:2]
>>> d
[1, 3, 5, 7, 9]
  
  二 映射(字典)
  映射中的每个元素都有一个专业的名字,叫做键。字典是Python中唯一内建的映射类型,下来我们对其进行详细介绍:
  (1)键类型
  字典(dict)是一个存放无序的键值映射(key/value)类型数据的容器字典的键可以是数
  字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型,而常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。键可以为任何不可变类型,这正是Python中的字典最强大的地方。
  (2)创建



>>> d = {}
>>> d[1] = 1
>>> d
{1: 1}
>>> d['cat'] = 'Lucy'
>>> d
{1: 1, 'cat': 'Lucy'}
  (3)查找
  dict是通过key来查找value,表示的是意义对应的关系,可以通过d[key]的方式来访问dict:



>>> d['cat']
'Lucy'
  (4)遍历



>>> d = {}
>>> d['cat'] = 'Lucy'
>>> d['dog'] = 'Ben'
>>> for key in d:
print(key + ":",d[key])
  结果
  cat: Lucy
  dog: Ben
  (5)优缺点
  dict的第一个特点是查找速度快,而且查找的速度与元素的个数无关,而list的查找速度是随着元素的增加而逐渐下降的;第二个特点是存储的key-value序对是没有顺序的;第三个特点是作为key得到元素是不可变的,所以list不能作为key。
  dict的缺点是占用内存大,还会浪费很多内容。

  三 集合(set)
  dict是建立了一系列的映射关系,而set是建立一系列无序的,不重复的元素。
  (1)创建
  创建set的方式是调用set()并传入一个list,list的元素将作为set的元素。



>>> S = set([1,2,3])
>>> S
{1, 2, 3}
  重复元素在Set中自动过滤,如:



>>> S = set([1,1,2,3,4,5,4])
>>> S
{1, 2, 3, 4, 5}
  (2)添加
  add()添加,有重复元素可以添加,但不会有效果:



>>> S.add(4)
>>> S
{1, 2, 3, 4, 5}
>>> S.add(9)
>>> S
{1, 2, 3, 4, 5, 9}
  (3)删除



>>> S.remove(9)
>>> S
{1, 2, 3, 4, 5}
  (4)交集,并集
  set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集:



>>> S1 = set([1,2])
>>> S2 = set([2,3])
>>> S1&S2
{2}
>>> S1|S2
{1, 2, 3}
  set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”
  
  四 list,tuple,dict和set的主要区别
  1 .list
  list是一个使用方括号括起来的有序元素集合;
  List 可以作为以 0 下标开始的数组,任何一个非空 list 的第一个元素总是 L[0],负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 L[-1];
  有分片功能,两个list可以相加;
  append 向 list 的末尾追加单个元素;
  insert 将单个元素插入到 list 中;
  extend 用来连接 list,使用一个 list 参数进行调用;
  append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部;
  index 在 list 中查找一个值的首次出现并返回索引值;
  要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False ;
  remove 从 list 中删除一个值的首次出现;
  pop 可以删除 list 的最后一个元素, 然后返回删除元素的值,用索引删除制定位置的值;
  
  2.tuple
  tuple是不可变的list,创建了一个tuple就不能以任何方式改变它;
  定义tuple是将整个元素集是用小括号括起来,是有序集合;
  tuple的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0];
  负数索引与 list 一样从 tuple 的尾部开始计数;
  与 list 一样分片 (slice) 也可以使用。分割一个 tuple 时, 会得到一个新的 tuple;
  没有 append、extend、remove或pop方法以及index方法;
  可以使用in来查看一个元素是否存在于tuple 中。
  
  3.dict
  dict定义了键和值之间的一一对应关系,每个元素都是一个key-value对;
  整个元素集合用大括号括起来,有序集合;
  可以通过 key 得到value, 但不能通过vaule获取 key;
  在一个 dict中不能有重复的 key, 并且 key 是大小写敏感的;
  键可以是数字、字符串或者是元组等不可变类型;
  用del使用key可以删除dict中的独立元素;
  用clear可以清除dict中的所有元素。
  4.set
  set是建立一系列无序的,不重复的元素;
  创建set的方式是调用set()并传入一个list,list的元素将作为set的元素;
  set和dict的唯一区别仅在于没有存储对应的value。
  
  以上是我自己的一些总结,还望大家不吝赐教~
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145074-1-1.html 上篇帖子: 【原创】Python第二章——字符串 下篇帖子: Python开发入门与实战13-基于模板的界面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表