Python内置数据类型详解
通常来说python在编程语言中的定位为脚本语言——scripting language 高阶动态编程语言。
python是以数据为主,变量的值改变是指变量去指到一个地址。
即:id(变量)->展示变量的地址。
因此一个具体的值,会有不同的变量名。
python的数据类型:
数字、字符串、列表、元组、字典
数字和字符串其实是很基本的数据类型,在python中和其他语言相差不是很大的,在这里就不细讲了。
dictionary介绍:
dictionary是python的内置数据类型之一,它定义了键和值之间的一对一关系。
其实就是通常所说的哈希数组。
dictionary的简单定义:dic={'key1':'value1','key2':'value2'}
dictionary中不能有重复的key,给同一个key赋值会覆盖掉原来的值。
任何时候都可以在dictionary中添加key-value的值对。
在dictionary中是没有元素顺序的说法的!因为是通过key再找value的,没有顺序之分。
在dictionary中,key的大小写是敏感的!
dictionary不只是用来存储字符串,dictionary的值可以使任意的数据类型,包括dictionary本身。同时,在单个的dictionary中,dictionary的值也并不需要全部都是同一数据类型,可以混用和匹配。dictionary的key的数据类型会有相对的要求,不过也是可以多种数据类型混用和匹配的。
del可以使用一个key将dictionary中的对应元素删除。>>>del dic[12]
clear()可以将一个dictionary中的所有值删掉,但原dictionary还在,只是变成了空{}.>>>dic.clear()
list介绍:
list是python中用的最频繁的数据类型。
list中的数据类型可以使任意的,同时是支持动态扩张的。
list的简单定义:lis=['a','b','abc','asd']。list是一个用方括号包括起来的有序元素的集合。
list支持正负两种索引模式:正索引是一般的情况,从0开始。
负索引是从list的尾部开始计数。任何一个非空的list的最后一个原始总是list[-1]。
list支持分片,既是从list的中间取数据。需要注意的是,slice的起始位置。
向list中添加数据:lis.append('new')向list的末尾添加数据;
lis.insert(2,'new')在list的2的位置插入值;
lis.extend(['new','nwe'])在原有的list中链接新的list(在末尾)。
append()和extend()的区别:
①.append()的参数可以是任何的数据类型,当然也可以是一个list,但是它是将怎么list当作一个元素,添加进原来的list。
②.extend()的参数只可以是一个list,同时是将整个list的所有元素,逐个添加进原来的list。
③.在list中搜索:lis.index('a')
④.index在list中查找一个值,并返回其首次出现的索引值。如果出现了多次,只返回第一次的索引值;如果不在list中,则会返回一个异常。
⑤.测试一个值是否在list中,使用in:>>>'c' in lis 返回的值是false。
在list中删除元素:
①.lis.remove('a')从list中删除一个值的首次出现(并不是所有)。
②.lis.pop() pop()会做两件事情:删除list的最后一个元素,同时返回这个被删除的元素。
③.list可以用+运算符链接起来。list=list+otherlist相当于list.extend(otherlist)。但是+运算符是把一个新的list(链接后)作为返回值,而extend()只修改存在的list。所以对于大型的list来说,extend()的执行速度要快一些。
④.list支持+=运算符。
⑤.list中的*运算符可以作为一个重复器作用于list。lis=[1,2]*3等同于lis=[1,2]+[1,2]+[1,2]。即是将三个list链接成一个。
tuple介绍:
tuple是一个不可变的list。一旦创建tuple,就不能以任何方式改变它。
tuple的简单定义:tup=('a','b','abc','asd')整个元素集用小括号包围。
因为tuple是不可变的,所以它没有方法,不能添加和删除元素。有和list一样的索引,可以同样的方法分片。当分割一个list时,会得到一个新的list;分割一个tuple时,会得到一个新的tuple。
tuple同样可以使用in的方式来查看一个元素是否存在于tuple中。
tuple可以看成是一类特殊的list,它存在的好处:
①.tuple比list的操作速度快。定义一个常量集,只需要用tuple来存储,你对它唯一的操作就是不断地遍历它。
②.tuple可以看成是对不需要更改的数据进行了“写保护”。可以使代码更加安全。
③.tuple在dictionary中是可以作为key的,而list是不可以的!因为dictionary中的key必须是不可变的。
④.tuple是可以转换成list的。内置的tuple函数可以接收一个list,返回一个有着相同元素的tupelo;而list函数接收一个tuple返回一个list。
深入理解本文所述的python内置数据类型对于熟练掌握python程序设计会有很大的帮助。