创建字典(Dictionary)

  • 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

  • 字典是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

  • 字典的两大特点:无序,键唯一

# 方法一

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

print(dic)

# >>> {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}


# 方法二

dic2 = dict((('name', 'ToDo'),))

print(dic2)

# >>> {'name': 'ToDo'}


# 方法三

dic3 = dict([['name', 'ToDo'],])

print(dic3)

# >>> {'name': 'ToDo'}

添加字典元素

dic = {'name':'ToDo'}

dic['age'] = 18

print(dic)

# >>> {'name': 'ToDo', 'age': 18}


# 方法二

# setdefault方法:如果字典中键值已存在,将不对元素做出改变

dic.setdefault('job', 'stu')

print(dic)

# >>> {'name': 'ToDo', 'age': 18, 'job': 'stu'}


dic.setdefault('job', 'programmer')

print(dic)

# >>> {'name': 'ToDo', 'age': 18, 'job': 'stu'}

查询字典元素

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

print(dic['name'])

print(dic.keys())

print(list(dic.keys()))

print(dic.values())

print(list(dic.values()))

print(list(dic.items()))

# >>> ToDo

# >>> dict_keys(['name', 'age', 'hobby', 'job'])

# >>> ['name', 'age', 'hobby', 'job']

# >>> dict_values(['ToDo', 18, 'girl', 'stu'])

# >>> ['ToDo', 18, 'girl', 'stu']

# >>> [('name', 'ToDo'), ('age', 18), ('hobby', 'girl'), ('job', 'stu')]

修改字典元素

# 方法一

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

dic['name'] = 'admin'

print(dic)

# >>> {'name': 'admin', 'age': 18, 'hobby': 'girl', 'job': 'stu'}


# 方法二

# update方法如果有相同的键,则替换原有键值

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

dic2 = {'name': 'admin', 'sex': 'boy'}

dic.update(dic2)

print(dic)

# >>> {'name': 'admin', 'age': 18, 'hobby': 'girl', 'job': 'stu', 'sex': 'boy'}

删除字典元素

# 方法一

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

del dic['name']

print(dic)

# >>> {'age': 18, 'hobby': 'girl', 'job': 'stu'}


# 方法二

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

dic.clear()

print(dic)

# >>> {}


# 方法三

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

print(dic.pop('age'))

print(dic)

# >>> 18

# >>> {'name': 'ToDo', 'hobby': 'girl', 'job': 'stu'}


# 方法四

# popitem方法随机删除某组键值对,并以元组方式返回值

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

print(dic.popitem())

print(dic)

# >>> ('job', 'stu')

# >>> {'name': 'ToDo', 'age': 18, 'hobby': 'girl'}


# 方法五

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

del dic

print(dic)

字典嵌套

dic = {

    "name": {

        "admin": ['帅气', '无敌', '超级管理员'],

        "ToDo": ['博主', '小白', '初学者'],

        "Taoke": ['淘客', '入门']

    },

    'job': {

        'stu': ['大学', '专科'],

        'programmer': ['小白', '弱鸡']

    },

    'hobby': {

        'girl': ['年龄相仿', '门当户对', '情投意合'],

        'books': ['人性的弱点', '墨菲定律']

    }

}

print(dic['hobby']['girl'])

# >>> ['年龄相仿', '门当户对', '情投意合']

字典的遍历

dic = {'name': 'ToDo', 'age': 18, 'hobby': 'girl', 'job': 'stu'}

# 方法一

for i in dic:

    print(i, dic[i])

# 方法二

for i in dic.items():

    print(i)

字典内置方法

  • fromkeys

dic = dict.fromkeys(['host1', 'host2', 'host3'], 8080)

print(dic)

# >>> {'host1': 8080, 'host2': 8080, 'host3': 8080}
  • sorted

dic = {5:'555', 6:'666', 8: '888', 2: '222'}

print(sorted(dic))

# >>> [2, 5, 6, 8]

不起眼的小广告

上一篇:Python列表与元组

下一篇:Python集合