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":["全部免费,真好,好人一生平安","服务器在国外,慢"]

}

}

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

  1. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  2. 【python学习笔记】4.字典:当索引不好用时

    [python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...

  3. PYTHON 学习笔记3 元组、集合、字典

    前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...

  4. python学习笔记整理——元组tuple

    Python 文档学习笔记2 数据结构--元组和序列 元组 元组在输出时总是有括号的 元组输入时可能没有括号 元组是不可变的 通过分拆(参阅本节后面的内容)或索引访问(如果是namedtuples,甚 ...

  5. python学习笔记6(字典)

    映射:键值对的关系,键(key)映射值(value) 字典是Python唯一的映射类型 >>> phonebook = {'} >>> phonebook {'} ...

  6. Python学习笔记3-Python元组、数组、字典集合的操作

    在Python中数组中的每一项可以是不同的数据类型 元组:只能读不能写的数组 aTuple=(1,'abc','tmc',79.0,False) print aTuple[1:3] print typ ...

  7. python学习笔记之三:字典,当索引不好用时

    字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里.键可以是数字,字符串甚至是元组. 1. 创建和使用字典 字典可以通过下面的方式创建: phon ...

  8. python学习笔记(三)、字典

    字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...

  9. python学习笔记07-元组 字典

    元组: 元组里面的元素不可修改  创建后只可读  不可写 一个元素的时候 在后面加一个逗号 字典: 无序的 Python 中唯一的映射类型 采用键值对的形式存储数据 key必须是可哈希的  可哈希表示 ...

随机推荐

  1. redis常用操作总结

    在项目中时常会用到redis,redis看起来好像很难的样子,而且我也确认反复学习了很久,但是,总结下来,自己使用到的东西并不太多,如下作一些总结工作. 1.安装(单机) 1.1 windows, 直 ...

  2. JavaScript到底是不是单线程

    JavaScript到底是不是单线程 JavaScript引擎 在了解计时器内部运作前,我们必须清楚一点,触发和执行并不是同一概念,计时器的回调函数一定会在指定delay的时间后被触发,但并不一定立即 ...

  3. Topology Shapes of OpenCascade BRep

    Topology Shapes of OpenCascade BRep eryar@163.com 摘要Abstract:通过对OpenCascade中的BRep数据的读写,理解边界表示法的概念及实现 ...

  4. GridView里做页面的链接

    采用Gridview的OnRowDataBound属性 后台 protected void gvTranslateInfo_RowDataBound(object sender, GridViewRo ...

  5. 深入理解PHP内核(十)变量及数据类型-类型提示的实现

    原文链接:http://www.orlion.ga/253/ PHP是弱类型语言,向方法传递参数时也并不严格检查数据类型.不过有时候需要判断传递到方法中的参数,为此PHP中提供了一些函数来判断数据的类 ...

  6. javase基础复习攻略《三》

    编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...

  7. PL/SQL异常处理

    As we all known,程序的错误一般分为两类:编译错误和运行时错误.其中运行时错误被称为异常.PL/SQL语句块中处理异常的部分即为异常处理部分.在异常处理部分,可以指定当特定异常发生时所采 ...

  8. [OpenCV] Samples 09: image

    根据需求,转化为不同的颜色格式,split后处理各自通道. plImage <==> Mat 格式转换 Mat --> plImage 简单写法: IplImage copy = m ...

  9. Vim多行缩进技巧

    按v进入visual状态,选择多行,用>或<缩进或缩出 通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起 ...

  10. 美妙的 CSS3 动画!一组梦幻般的按钮效果

    今天给大家带来的是五款梦幻般的动画按钮效果.下面是在线演示,把鼠标放在按钮上试试,有惊喜哦!CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果. 温馨提示:为保 ...