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 ##刪除字典本身

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