python元祖组成字典_(Python)元祖、字典

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

1.元组 (tuple)

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

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

>>> t[1]=4Traceback (most recent call last):

File"", line 1, in t[1]=4TypeError:'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>>>x123

>>>y234

>>>z'asss'

>>>t

(123, 234, 'asss')>>> for i int:printi123

234asss>>> 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 ind.keys():printd[i]10Jack

feman

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

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

Traceback (most recent call last):

File"", line 1, in 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"", line 1, in 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']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值