Skip to content

Instantly share code, notes, and snippets.

@caoya171193579
Created December 18, 2018 13:45
Show Gist options
  • Save caoya171193579/18dd18782c55c5a3cbc77600493806a1 to your computer and use it in GitHub Desktop.
Save caoya171193579/18dd18782c55c5a3cbc77600493806a1 to your computer and use it in GitHub Desktop.
入门
字典 (定义 {} 、 格式 (:) ) <type 'dict'>
字典是python中唯一的映射类型(哈希表)
字典的对象是可变的,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值。
keys()或者values() 返回键列表或者值列表
items() 返回包含键值对的元祖
字典的定义:用花括号{}
>>> d={1:2,2:3,3:4} (定义一个字典d)
>>> type(d) (查看d 属于什么类型)
<type 'dict'> (dict 代表 字典)
>>> d
{1: 2, 2: 3, 3: 4}
>>> d[1] (查看keys(k) [1] 的值)
2
>>> d[2]
3
>>> d[3]
4
>>> d[0] (字典是从1开始记值。values[哇六])所以字典里面没有0这个key
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 0
>>> d={"name":'dandan','age':28,'tel':18867796071} (定义字典d,对应的keys,和值 ,:前面是keys, : 后面是values 值)
>>> d
{'age': 28, 'tel': 18867796071, 'name': 'dandan'}
>>> d['name'] (查看keys'name' 对应的值)
'dandan'
>>> d['tel']
18867796071
>>> d['age']
28
#############################################################
>>> a=100
>>> b=450
>>> dic={a:'aaa','b':'bbb'} (keys可以是一个变量,也可以是字符串,和任何不可改变的元素,前提是要提前给key做个定义,定义成不可边的任何类型,然后再加进字典里面)
>>> a
100
>>> dic
{'b': 'bbb', 100: 'aaa'}
>>> a=100
>>> b=450
>>> dic={b:'aaa','a':'bbb'}
>>> b
450
>>> dic
{'a': 'bbb', 450: 'aaa'}
查看字典内的元素
循环遍历 (for k in +字典名)快速取值, 后面还会重点讲
{'b': 'bbb', 100: 'aaa'}
>>> for k in dic: (循环 字典 dic)
... print k (输出字典内所有的keys, 注意前面有四个空格)
...
...
b
100
>>> for k in dic:
... dic[k] (输出字典内所有keys对应的values值, 注意前面有四个空格)
...
'bbb'
'aaa'
#####################################################################
字典(哈希类型的值)是无顺序型的类型,(胡乱排的,只用记着:前面的是keys,:后面的是values), 和列表不同,列表是有顺序的从0开始依次往后排。 字典是通过keys来取值的,而列表是通过位置0123456 依次来取值的)
字典内添加keys:
>>> dic
{'b': 'bbb', 100: 'aaa'}
>>> dic['tel']=18867796071 (添加一个叫'tel' 的keys ,然后values值=18867796071)
>>> dic (展示dic 对应的字典)
{'tel': 18867796071, 'b': 'bbb', 100: 'aaa'}
>>> dic[9]='sss' (添加一个叫9 的keys ,然后values值='sss')
>>> dic
{'tel': 18867796071, 'b': 'bbb', 100: 'aaa', 9: 'sss'}
字典的修改:
>>> dic['tel']=188 (修改字典dic中 'tel' 这个keys的值)
>>>dic
{'tel': 188, 'b': 'bbb', 100: 'aaa'}
字典的删除:
>>> dic
{'tel': 18867796071, 'b': 'bbb', 100: 'aaa', 9: 'sss'}
>>> del(dic['tel']) (删除字典dic中 'tel' 这个keys)
>>> dic
{'b': 'bbb', 100: 'aaa', 9: 'sss'}
>>> del(dic[9]) (删除字典dic中 9 这个keys)
>>> dic
{'b': 'bbb', 100: 'aaa'}
字典名.pop(keys) :删除并且返回()内这个keys的元素,也就是values 值。
>>> dic
{'b': 'bbb', 100: 'aaa'}
>>> dic.pop('b') (弹出keys 'b' 的值,并删除它)
'bbb'
>>> dic
{100: 'aaa'}
字典名.clear() :删除字典的所有元素
>>> dic
{100: 'aaa'}
>>> dic.clear() (清空字典 dic)
>>> dic
{} (它依然是个字典,只不过是个空字典)
del 字典名 :删除整个字典
>>> del dic (彻底删除 字典 dic)
>>> dic
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError(未定义的变量): name 'dic' is not defined
后期会介绍字典的一个重要函数 copy() :用来做字典的比较,比较字典的大、小、键(keys)、值(values).
len(), hash() (用于判断某个对象是否可以做一个字典的键(keys),非哈希类型会报TypeError错误)。
字典名.get(key, '自定义一个值'): 返回key的value 值, 如果该键(keys)不存在返回自定义的值。
>>> dic
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic.get(2, 'Error') (查看字典dic 内 有没有2 , 这个keys , 如果没有返回 'Error')
'Error'
字典名.keys() : 返回字典中键(keys)的列表。
>>> dic
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic.keys()
[1, 'xing', 'name']
字典名.values : 返回字典中所有键 对应的值。
>>> dic
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic.values()
[123, 'nv', 'dandan']
字典名.items() :返回键值 转换成元祖的列表。
>>> dic
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic.items()
[(1, 123), ('xing', 'nv'), ('name', 'dandan')]
字典名.has_key(key) : 判断字典中是否存在key.
>>> dic
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic.has_key(2)
False (表示不存在)
>>> dic.has_key(1)
True (表示存在)
字典名1.update(另一个字典名2) :将字典2中的键值对(keys和values)添加到字典1中,如果有重复就覆盖,字典2 不存在的元素条目 将添加进 字典2内。
>>> dic (查看字典)
{1: 123, 'xing': 'nv', 'name': 'dandan'}
>>> dic1={2:2,3:3,4:4} (定义字典 dic1)
>>> dic.update(dic1) (将字典dic1中的键值对 添加到dic 中)
>>> dic (查看字典)
{1: 123, 2: 2, 3: 3, 'xing': 'nv', 'name': 'dandan', 4: 4}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment