Python学习笔记 (第7课)

本节将学习元组、字典,以及其他涉及到的相关知识



1.元组 (tuple)



元组由圆括号括起来,元素之间用逗号相隔。元组是不可变对象,一旦定义了,就不能更改

>>> t=(‘a‘,‘b‘,‘c‘)
>>> t[1]
‘b‘
>>> t[1]=4

Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    t[1]=4
TypeError: ‘tuple‘ object does not support item assignment

元组只有tuple.index() 和tuple.count() 两个方法。

tuple.index(x)  返回元组中第一个元素值为x的索引

tuple.count(x) 统计并返回元组中元素值为x的个数

>>> t=(‘a‘,‘b‘,‘c‘,‘c‘,1,2)
>>> t.index(‘c‘)
2
>>> t.index(1)
4
>>> t.count(‘c‘)
2
>>> t.count(1)
1

定义元组可以使用以下方法:

>>> t=‘x‘,‘y‘,1,2,3
>>> t
(‘x‘, ‘y‘, 1, 2, 3)
>>> t=‘122334‘,
>>> t
(‘122334‘,)
>>> len(t)
1

元组的其他用法:

>>> t=123,234,‘asss‘
>>> x,y,z=t
>>> x
123
>>> y
234
>>> z
‘asss‘
>>> t
(123, 234, ‘asss‘)
>>> for i in t:
    print i

123
234
asss
>>> u=t,(1,2,3)
>>> u
((123, 234, ‘asss‘), (1, 2, 3))


2.字典(dict)



字典是由{key1:value,key2:value}形式组成。字典是可变的对象。key值必须唯一。 字典是不能通过像列表那样用排好序的数字来索引的,必须通过key来引用某个值,并且是没有先后顺序的。

以下是字典的使用例子:

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> d[‘name‘]
‘Jack‘
>>> d[‘age‘]
10
>>> for i in d.keys():
    print d[i]

10
Jack
feman

字典不能直接通过key,新增一个key:value

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> d[‘address‘:‘china‘]

Traceback (most recent call last):
  File "<pyshell#69>", line 1, in <module>
    d[‘address‘:‘china‘]
TypeError: unhashable type

字典能通过已有的key,更改该key的value值:

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> d[‘age‘]=20
>>> d
{‘age‘: 20, ‘name‘: ‘Jack‘, ‘sex‘: ‘feman‘}

字典还能通过del函数,删除指定key:value

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> del(d[‘age‘])
>>> d
{‘name‘: ‘Jack‘, ‘sex‘: ‘feman‘}

我们还可以通过dict() 来新建一个字典

>>> d=dict(name=‘Flack‘,age=10,sex=‘man‘)
>>> d
{‘age‘: 10, ‘name‘: ‘Flack‘, ‘sex‘: ‘man‘}
>>> d=dict([(‘sape‘, 4139), (‘guido‘, 4127), (‘jack‘, 4098)])
>>> d
{‘sape‘: 4139, ‘jack‘: 4098, ‘guido‘: 4127}
>>> d=dict(([‘sape‘, 4139], [‘guido‘, 4127], [‘jack‘, 4098]))
>>> d
{‘sape‘: 4139, ‘jack‘: 4098, ‘guido‘: 4127}


3.字典(dict)的函数



dict.clear() 清空字典,使字典为空。 而del(dict)是删除字典

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> d.clear()
>>> d
{}
>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> del(d)
>>> d

Traceback (most recent call last):
  File "<pyshell#100>", line 1, in <module>
    d
NameError: name ‘d‘ is not defined

dict.copy() 复制一个和dict一样的字典

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> c=d.copy()
>>> d.clear()
>>> d
{}
>>> c
{‘age‘: 10, ‘name‘: ‘Jack‘, ‘sex‘: ‘feman‘}

dict.fromkeys(S[,v]) ,S里的元素(元素可能重复,重复的只取一个,不会报错)作为键,v作为所有键的值,v 的默认值为 None。返回一个新的字典

>>> d={‘name‘:‘Jack‘,‘age‘:10,‘sex‘:‘feman‘}
>>> c=d.fromkeys(‘name‘,‘lirong‘)
>>> c
{‘a‘: ‘lirong‘, ‘e‘: ‘lirong‘, ‘m‘: ‘lirong‘, ‘n‘: ‘lirong‘}
>>> c=d.fromkeys(‘namee‘,‘lirong‘)
>>> c
{‘a‘: ‘lirong‘, ‘e‘: ‘lirong‘, ‘m‘: ‘lirong‘, ‘n‘: ‘lirong‘}

dict.get(k[,d]) 如果dict中的键k存在,取dict[k]的值,如果不存在,则取d,d默认为None

>>> c={1:2,2:3,3:4}
>>> print c.get(1,2)
2
>>> print c.get(5,2)
2
>>> print c.get(3,2)
4

dict.has_key(k) 判断dict中是否存在键k,若有,返回true,若无,返回false

>>> c={1:2,2:3,3:4}
>>> c.has_key(1)
True
>>> c.has_key(10)
False

dict.items() 将dict的key:value转换成元组[(key1,value1),(key2,value2)..]

>>> c={1:2,2:3,3:4}
>>> c.items()
[(1, 2), (2, 3), (3, 4)]

dict.iteritems() 将dict的key:value转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.iteritems()
>>> f.next()
(1, 2)
>>> f.next()
(2, 3)

dict.iterkeys()将dict的键key转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.iterkeys()
>>> f.next()
1
>>> f.next()
2

dict.itervalues() 将dict的值Value转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.itervalues()
>>> f.next()
2
>>> f.next()
3

dict.keys() 以列表的形式返回dict的键

>>> c={1:2,2:3,3:4}
>>> c.keys()
[1, 2, 3]

dict.pop(k[,d]) 删除键为k的key:value,并返回value (如果k不存在,则返回d)

>>> c={1:2,2:3,3:4}
>>> c.pop(2,10)
3
>>> c.pop(3,10)
4
>>> c.pop(3,10)
10

dict.popitem() 删除键值对,并以元组的形式返回该键值对

>>> c={1:2,2:3,3:4}
>>> c.popitem()
(1, 2)
>>> c.popitem()
(2, 3)
>>> c.popitem()
(3, 4)
>>> c
{}

dict.setdefault(k[,d]) 返回dict[k]的值,如果键k不存在,那么该函数为会新增dict[k]=d,并且返回d

>>> c
{}
>>> c.setdefault(‘name‘,‘lirong‘)
‘lirong‘
>>> c
{‘name‘: ‘lirong‘}
>>> c.setdefault(‘name‘,‘test‘)
‘lirong‘
>>> c
{‘name‘: ‘lirong‘}

dict.update(F) ,用迭代器或字典F来更新dict,如果F中的元素在dict中没有,则添加到dict中

>>> c
{‘name‘: ‘lirong‘}
>>> c.update()
>>> c
{‘name‘: ‘lirong‘}
>>> f={"a":1,"b":2}
>>> c.update(f)
>>> c
{‘a‘: 1, ‘b‘: 2, ‘name‘: ‘lirong‘}

dict.values() 以列表的形式返回dict的value值

>>> c
{‘a‘: 1, ‘b‘: 2, ‘name‘: ‘lirong‘}
>>> c.values()
[1, 2, ‘lirong‘]
时间: 2024-11-12 02:49:47

Python学习笔记 (第7课)的相关文章

Python学习笔记 (第8课)

本节我们将学习python的另一种数据类型:集合(set) 1.集合(set) 集合在Python中是一种没有重复元素,且无序的数据类型,且不能通过索引来引用集合中的元素 >>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana'] >>> set(basket) set(['orange', 'pear', 'apple', 'banana']) set1-set2来获得在set1中的元素在

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

python学习笔记12-模块使用

python学习笔记12-模块使用 模块os,sys 什么是模块? 模块os,sys 模块是Python组织代码的一种基本方式 一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py 什么是Python的 包? Python的模块可以按照目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在改目录下创建一个__init__.py文件 根据需要,在该目录下存放脚本文件或已编译的扩展及子包 import pack.m1,pack.

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 学习笔记 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对象 首先来理解一个通俗的含义,什么是对象?其实对象无论在什么语言里面

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python 学习笔记 6 -- 异常处理

当你的程序中出现某些 异常的 状况的时候,异常就发生了.例如,当你想要读某个文件的时候,而那个文件不存在.或者在程序运行的时候,你不小心把它删除了. 那么如果你是在IDE中运行,一个错误发生,异常会被打引出来,这便是未处理异常:当异常发生时,如果没有代码去关注和处理它,这些异常会传给置在Python中的缺省处理,他会输出一些调试信息并且终止运行.如果是在IDE中,这不是什么大事,但是如果是Python程序运行中的异常,它会导致整个程序终止,对于这些情况可以使用异常来处理. 1.try..exce

python 学习笔记 3 -- 数据结构篇上

数据结构是可以处理一些 数据 的 结构 .或者说,它们是用来存储一组相关数据的.在Python中有三种内建的数据结构--列表.元组和字典.本文主要对这三种数据类型以及相关的使用做介绍,以例子的形式演示更加容易理解! 1.列表(List) 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.在Python中,你在每个项目之间用逗号分割. 列表中的项目应该包括在**方括号**中,这样Python就知道你是在指明一个列表.一旦你创建了一个列表,你可以添加.删除或是搜索列表中的