发布网友 发布时间:2022-03-03 17:17
共1个回答
热心网友 时间:2022-03-03 18:46
下面介绍了Python中的6种特殊数据类型:
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结构一致。
a.t=()其打印后输出的形式是()
若t中的数据为一个数字则需要在后面加逗号,以区分普通数字,如t=(1,),打印出(1,)而非1,多元素的话则没有这个要求。
b.可以在不变的tuple中加入可变的List如t=(‘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'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -*-coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++另存为, 并选择UTF-8格式保存。
6.raw的作用
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r,表示这是一个“raw”字符串,里面的字符就不需要转义了。例如:
r'\(~_~)//'
但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串,如果要表示多行字符串。