码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记 (第7课)

时间:2015-04-07 17:34:13      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:

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


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]

 

Python学习笔记 (第7课)

标签:

原文地址:http://www.cnblogs.com/Lival/p/4398365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!