Python_day_03_字典

字典的特性

不可行的特性: 索引, 切片, 连接, 重复, (因为dict是无序的数据类型;)
可行的特性: 成员操作符;

为什么需要字典类型?

>>> list1 = ["name", "age", "gender"]
>>> list2 = ["fentiao", 5, "male"]
>>> zip(list1, list2)
//通过zip内置函数将两个列表结合,help(zip)
[('name', 'fentiao'), ('age', 5), ('gender', 'male')]
>>> list2[0]
//在直接编程时,并不能理解第一个索引表示姓名
'fentiao'
>>> list2[name]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
故字典是python中唯一的映射类型,key-value(哈希表),字典对象是可变的,但key必须用不可变对象。

1.字典的定义

字典的创建

创建字典的三种方式;

hash哈希 ====== 字典dict
dict = {}
print  type(dict)

1)字典的简单版定义1:

d = {
    # :前面的称为键,key
    # :后面的称为值,value
    # 键值对(key-value)
    'name': 'root',
    'passwd':'westos'
}
print d['name']
print d['passwd']

字典的升级版定义:

info = {
    'root':{
        'name': 'root',
        'passwd':'westos',
        'age':18,
        'eamil':['[email protected]', '[email protected]']
    },
    'student': {
        'name': 'student',
        'passwd': 'westos',
        'age': 18,
        'eamil': ['[email protected]', '[email protected]']
    },
}
print info['root']

2)通过工厂函数创建字典

d = dict()
print type(d)

d = dict(a=1, b=2, c=3)
print d, type(d)

3)fromkeys方法创建字典 ##默认valie值为none,可一次给多个key值赋value

d = {}.fromkeys(['user1', 'user2', 'user3'])
print d

d = {}.fromkeys(['user1', 'user2', 'user3'],"123")
print d

2.字典值的查看

In [32]: d.keys()       ##key值
Out[32]: ['a', 'b', 'f']

In [33]: d.values()     ##value值
Out[33]: [1, 2, 10]

In [34]: d.items()      ##key-value对
Out[34]: [('a', 1), ('b', 2), ('f', 10)]

In [35]: for i,j in d.items():
    ...:     print i,j
    ...:
a 1
b 2
f 10

In [36]: d.has_key('a')     ##子成员判断
Out[36]: True

3.字典key-value的添加

1)update(key=value, …..)

  - 如果key值存在, 更新该key对应的value值;
  - 如果key不存在, 添加key-value值;

2)setdefault(key,value)

  - 如果key值存在, 不操作;
  - 如果key不存在, 添加key-value值;

4.字典的改动

字典名[key]=value
d.update({'a':2, 'b':3})
d.update(a=2, b=3)

5.字典的删除

1)dic.pop(key) ##根据key值删除字典的元素;

pop(k[,d]):
- 如果key存在, 删除key-value;
- 如果key不存在,判断d是否存在:
- 如果d不存在, 报错KeyError;
- 如果d存在, 返回d;

In [26]: d
Out[26]: {'a': 1, 'b': 2}
In [32]: d.keys()
In [41]: d.pop('e', 1)
Out[41]: 1

In [42]: d
Out[42]: {'a': 1, 'b': 2, 'f': 10}

In [43]: d.pop('a')
Out[43]: 1

In [44]: d
Out[44]: {'b': 2, 'f': 10}

In [45]: d.pop('b', 10)
Out[45]: 2

2)dic.popitem() ##随机删除字典元素,返回(key,value),当字典为空时报错

3)del dic[‘f’] ##删除字典元素,无返回值

4)dic.clear() ##删除字典中的所有元素

4)del dic ##删除字典本身

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章