python学习笔记3(元组、字典)

Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。

元组(tuple)

只读列表(列表的值可以修改,元组的不可以)

元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

如下实例:

tup1 = (‘physics‘, ‘chemistry‘, 1997, 2000)

tup2 = (1, 2, 3, 4, 5 )

tup3 = "a", "b", "c", "d"

创建空元组

tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号

tup1 = (50,)

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

访问元组

元组可以使用下标索引来访问元组中的值,如下实例:

tup1 = (‘physics‘, ‘chemistry‘, 1997, 2000)

tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1[0]: ", tup1[0])

print ("tup2[1:5]: ", tup2[1:5])

以上实例输出结果:

tup1[0]:  physics

tup2[1:5]:  [2, 3, 4, 5]

修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

tup1 = (12, 34.56)

tup2 = (‘abc‘, ‘xyz‘)

以下修改元组元素操作是非法的。

tup1[0] = 100

创建一个新的元组

tup3 = tup1 + tup2

print (tup3)

以上实例输出结果:

(12, 34.56, ‘abc‘, ‘xyz‘)

删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

tup = (‘physics‘, ‘chemistry‘, 1997, 2000)

print(tup)

del tup

print "After deleting tup : "

print (tup)

元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。


Python 表达式


结果


描述


len((1, 2, 3))


3


计算元素个数


(1, 2, 3) + (4, 5, 6)


(1, 2, 3, 4, 5, 6)


连接


[‘Hi!‘] * 4


(‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘)


复制


3 in (1, 2, 3)


True


元素是否存在


for x in (1, 2, 3): print x,


1 2 3


迭代

元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元组:

L = (‘spam‘, ‘Spam‘, ‘SPAM!‘)


Python 表达式


结果


描述


L[2]


‘SPAM!‘


读取第三个元素


L[-2]


‘Spam‘


反向读取;读取倒数第二个元素


L[1:]


[‘Spam‘, ‘SPAM!‘]


截取元素

无关闭分隔符

任意无符号的对象,以逗号隔开,默认为元组,如下实例:

#!/usr/bin/python

print ‘abc‘, -4.24e93, 18+6.6j, ‘xyz‘;

x, y = 1, 2;

print "Value of x , y : ", x,y;

以上实例允许结果:

abc -4.24e+93 (18+6.6j) xyz

Value of x , y : 1 2

元组内置函数

Python元组包含了以下内置函数


序号


方法及描述


1


cmp(tuple1, tuple2)
比较两个元组元素。


2


len(tuple)
计算元组元素个数。


3


max(tuple)
返回元组中元素最大值。


4


min(tuple)
返回元组中元素最小值。


5


tuple(seq)
将列表转换为元组。

Dictionary(字典)

字典dict,是Python唯一的标准mapping类型,也是内置在Python解释器中的。

mapping object把一个可哈希的值(hashable
value)映射到一个任意的object上。

什么是可哈希的

一个object是可哈希的(hashable), 是指这个object在其生存期内有一个不变的哈希值(hash
value),即__hash__()方法返回的值。

所有不可变的(immutable)内置object都是hashable的,比如string,tuple。所有可变的(mutable)内置容器都不是hashable的,比如list,dict(即没有__hash__()方法)。而所有自定义的类(use-defined
class)对象都是可哈希的(hashable),并且只能和自己相等,其hashvalue为其id(object)的值,这里的id()为内置函数,CPython实现的时候取的对象在内存中的地址。

字典Dictionary的key必须是可哈希的,所以tuple,string可以做key,而list不能做key。

dict本身是一个类

class dict(mapping)

通俗地来讲,字典无非就是很多的数据,但是它有一个目录,可以通过目录中的一个简单值来找到与之相对于的详细信息。换句话来说,目录就是内容的一个特殊标示,即目录中的每一个字段,都会在内容中有与之相对应的详细信息。也就是说,目录中的每一个信息都是唯一的,与目录中的其他信息互不冲突。

在Python的Dictionary不只是用于存储字符串。Dictionary的值可以是任意数据类型,包括字符串,整数,对象,甚至其它的 dictionary。在单个 dictionary里, dictionary的值并不需要全都是同一数据类型,可以根据需要混用和匹配。但是Python的key就比较严格了,它们可以是字符串,整数(我知道的只有这两种)。也可以在一个 dictionary中混用和配匹 key的数据类型。

定义Dictionary

dic = {"server":"apache",
"database":"master"}每一个元素都是一个 key-value对, 整个元素集合用大括号括起来。可以通过 key来引用其值,但是不能通过值获取 key。所以d["server"]的值为 ‘apache‘。

修改Dictionary

在一个 dictionary中不能有重复的key,但我们可以给一个存在的 key赋值,覆盖原有的值。如,我要将Dictionary dic中“server”的值改为“weblogic”,dic[“server”] =“weblogic”。

添加key-value

添加键值对其实很简单,举个简单的例子:我要在Dictionary中添加user=’root’的键值对,dic[“user”] = “root”。

Dictionary中的常用方法:


len(a)


得到字典a中元素的个数


a[k]


取得字典a中键K所对应的值


a[k] = v


设定字典a中键k所对应的值成为v


del a[k]


使用 key从一个 dictionary中删除独立的元素。如,删除Dictionary dic中的user=’root’:del dic[“user”]


a.clear()


从一个 dictionary中清除所有元素。如,删除Dictionary dic中的所有元素:dic.clear()


a.copy()


得到字典副本


k in a


字典中存在键k则为返回True,没有则返回False


k not in a


字典中不存在键k则为返回true,反之返回False


a.has_key(k)


判断字典a中是否含有键k


a.items()


得到字典a中的键—值对list


a.keys()


得到字典a中键的list


a.update([b])


从b字典中更新a字典,如果键相同则更新,a中不存在则追加.


a.fromkeys(seq[, value])


创建一个新的字典,其中的键来自sql,值来自value


a.values()


得到字典a中值的list


a.get(k[, x])


从字典a中取出键为k的值,如果没有,则返回x


a.setdefault(k[, x])


将键为k的值设为默认值x。如果字典a中存在k,则返回k的值,如果不存在,向字典中添加k-x键值对,并返回值x


a.pop(k[, x])


取出字典a中键k的值,并将其从字典a中删除,如果字典a中没有键k,则返回值x


a.popitem()


取出字典a中键值对,并将其从字典a中删除


a.iteritems()


返回字典a所有键-值对的迭代器。


a.iterkeys()


返回字典a所有键的迭代器。


a.itervalues()


返回字典a所有值的迭代器。

Dictionary中的key值是大小写敏感的。并且在同一个dictionary中不能有重复的key值。并且,Dictionary中没有元素顺序的概念。

字典两大特点:无序,键唯一

创建字典
1
dic={"name":"liu","age":"23","hobby":"python",}
dic = dict(((‘name‘,‘liu‘),(‘age‘,‘23‘),))
print(dic)
2
 dic = dict([[‘name‘,‘liu‘],[‘age‘,‘23‘],])
 print(dic)
字典的操作

1
 dic={‘name‘:‘liu‘}
 dic[‘age‘]=3
 print(dic)
2   如果键没有,加入,返回值为增加对应的值
dic={‘name‘:‘liu‘}
a=dic.setdefault(‘age‘,34)
print(dic)
print(a)
如果键没有,则不做修改,返回值为原来字典的
 dic={‘name‘:‘liu‘}
 a=dic.setdefault(‘name‘,34)
 print(dic)
 print(a)
3.update  dic改变,dic1不变
 dic={‘name‘:‘liu‘}
 dic1={‘age‘:23}
 dic.update(dic1)
 print(dic)
 print(dic1)


通过键查找
dic={‘name‘:‘liu‘,‘age‘:45}
print(dic[‘name‘])
print(list (dic.keys
() ))     查字典中所有的键
dic.values()                查中字典中所有的值
dic.item                    将所有的键值对以元组的方式拿出

 dic={‘name‘:‘liu‘}
 dic[‘name‘]=‘alex‘
 print(dic)
删除
dic={‘name‘:‘liu‘,‘age‘:23}
del dic[‘name‘]        按键删除一个键值对
print(dic)

del dic                删除整个字典
print(dic)
其他操作及涉及到的方法
创建
dic=dict.fromkeys([‘a‘,‘b‘,‘c‘],‘d‘)
print(dic)
字典的排序
根据键排序
dic={‘name‘:‘liu‘,‘hobby‘:‘python‘}
print(sorted(dic.items()))
根据值排序
print(sorted(dic.values()))
字典的遍历
dic={‘name‘:‘liu‘,‘hobby‘:‘python‘}
for i in dic:
     print(i,dic[i])
两种方法值一样建议用第一种
for i,v in dic.items():
    print(i,v)

字典的嵌套

av_catalog = {

"欧美":{

"www.youporn.com": ["很多免费的,世界最大的","质量一般"],

"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],

"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],

"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]

},

"日韩":{

"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]

},

"大陆":{

"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]

}

}

时间: 2024-10-19 02:09:14

python学习笔记3(元组、字典)的相关文章

python学习笔记4:字典

python学习笔记4:字典 总结:字典是可变变量: 字典是不排序的,所以不能像列表,元组,字符串一样,切片 1.定义字典dict  --花括号{},字典的只是key-value形式 比如:stu={'name':'zhangying','age':18,'score'=99} 2.key取值,get()方法取值 1)dictname[key] , 取key对应的value值,如果不存在,报错 2)dictname.get(key) , 取key对应的value值,如果不存在,返回none:还可

python学习笔记六:字典

字典是python中唯一内建的映射类型. 特点: 没有特殊的顺序: 存储在特定的键(key)下,可以是数字.字符串甚至是元组 创建和使用字典 phonebook= {'Alice':'2341', 'Beth':'9102','Cecil':'3258'} a.由键-值组成,上述例子中,名字是键,电话号码是值 b.键与值用冒号(:)隔开 c.每一对键-值使用逗号(,)隔开 d.整个字典由一对大括号括起来 e.空字典:{} dict函数 >>> items = [('name','Gumb

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

python学习笔记(五)之字典2

python学习笔记(五)之字典2编程实战中经常用到实例1:copy >> ad = {"name":"wtf","hig":"180"}>> bd = ad>> bd{'name': 'wtf', 'hig': '180'}>> id (ad)4539954352>> id (bd)4539954352说明:一个对象贴上两个标签,使用赋值,实现了所谓的"假

python学习笔记3:列表和元组

python学习笔记3:列表和元组 一.列表 list 总结:列表是可变变量,可以通过下标修改元素的值 1.定义列表 -- 中括号[ ] name=['Lily','Lucy','meimei'] 2.下标取值 --正负数均可 3.在列表中添加值 1)append() 方法,在列表末尾添加一个值 2)insert()方法,在列表指定位置添加一个值 3)extend()方法,把一个列表追加到一个列表的末尾            4.从列表中删除值 1)pop() 方法,默认删除最后一个元素,并且返

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

Python学习笔记_Python对象

Python学习笔记_Python对象 Python对象 标准类型 其他内建类型 类型对象和type类型对象 Python的Null对象None 标准类型操作符 对象值的比较 对象身份比较 布尔类型 标准类型的内建函数 typeObj cmpobj1 obj2 strobj reprobj typeobj isinstanceobj 标准类型的分类 存储模型 更新模型 访问模型 不支持的类型 Python学习笔记_Python对象 首先来理解一个通俗的含义,什么是对象?其实对象无论在什么语言里面