Python中的几种特殊数据类型小结

1.list:列表

是一种有序的数据集合,在列表数据结构中的类型并不唯一

定义形式:L=['Micha',100,True]

输出整个列表的时候显示为['Micha',100,True]

输出单个的数值则为:Micha

a.访问,直接使用L[0]表示第一个元素或者使用L[-1]表示最后一个数据,以此类推,但是注意访问不能越界(访问的序号不能超过元素的总数)。

b.添加新元素:使用L.append(100)直接将100加入列表末尾,或者使用L.insert(0,'paul')paul插入任意位置。

c.删除元素:L.pop()删除最后一个元素,或者L.pop(2)删除第2个位置的元素。

d.替换元素:直接赋值就可以了L[2]=100

2.tuple:元组

是一种有序的列表,但是其一旦创立完毕就不能够更改,即不能插入,删除里面的元素,访问的方式跟List结构一致。

扫描二维码关注公众号,回复: 3443928 查看本文章

a.t=()其打印后输出的形式是()

t中的数据为一个数字则需要在后面加逗号,以区分普通数字,如t=(1,),打印出(1,)而非1,多元素的话则没有这个要求。

b.可以在不变的tuple中加入可变的Listt=(‘a,'b',['A','B']

3.dict:字典

d = {

    'Adam': 95,

    'Lisa': 85,

    'Bart': 59

}

len()函数可以计算任意集合的大小

其中可以简单地使用d[key]的形式来查找对应的 value,这和 list很像,不同之处是,list必须使用索引返回对应的元素,而dict使用key,key不存在的时候,使用该key可能出现错误,因此:要避免 KeyError 发生,有两个办法:

一是先判断一下 key 是否存在,用 in 操作符:

if'Paul' in d:

    print d['Paul']

如果 'Paul' 不存在,if语句判断为False,自然不会执行print d['Paul'],从而避免了错误。

二是使用dict本身提供的一个 get方法,在Key不存在的时候,返回None

>>>print d.get('Bart')

59

a.dict中的key不能重复,且dict中的存储的对应值没有顺序,打印出的东西可能是无序的

b.dict的更新:使用d[paul']=72求解

c.dict遍历:

d = {'Adam': 95, 'Lisa': 85, 'Bart': 59 }

>>>for key in d:

...     print key

遍历只能获得key的值,需要通过key值获得对应的value

4.set:集合

无序但是所有元素唯一,不重复

a.定义:s = set(['A', 'B', 'C']),查看 set的内容:

>>>print s

set(['A','C', 'B'])

可以用in来判断是否存在于集合中

b.遍历

s =set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for xin s:

    print x[0]+':',x[1]

c.添加元素到集合中

s.add(4)

d.删除元素

s.remove(4)若该元素不在集合中将会报错

5.Unicode编码

Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

printu'中文'

注意: 不加 u,中文就不能正常显示中文。

a.转义形式: u'中文\n日文\n韩文'

b.输出多行:

u'''第一行

第二行'''

c.raw+多行的形式:

ur'''PythonUnicode字符串支持"中文",

"日文",

"韩文"等多种语言'''

如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*-coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++另存为, 并选择UTF-8格式保存。

6.raw的作用

如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r,表示这是一个“raw”字符串,里面的字符就不需要转义了。例如:

r'\(~_~)//'

但是r'...'表示法不能表示多行字符串,也不能表示包含' "的字符串,如果要表示多行字符串。

猜你喜欢

转载自blog.csdn.net/u011795345/article/details/53305177