Python 学习日记第三篇 -- 字典

一、字典

python中的字典不是序列,而是一种映射;不通过位置而是通过键存储。字典是可变的。

1、字典的映射操作

使用{}定义字典,以key:value形式存储数据,在字典中key是唯一的
>>> one_dict = {‘name‘:"jym",‘age‘:23,‘addr‘:‘xinjiang‘}
#通过key查找数据
>>> one_dict[‘name‘]
‘jym

#修改
>>> one_dict[‘name‘] = "Jym"
>>> print(one_dict)
{‘name‘: ‘Jym‘, ‘age‘: 23, ‘addr‘: ‘xinjiang‘}
>>> one_dict[‘age‘] += 1
>>> print(one_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘}

#添加,直接赋值不在字典中的键,会创建该键值
>>> one_dict[‘job‘] = "ops"
>>> print(one_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘, ‘job‘: ‘ops‘}

#字典的嵌套
>>> two_dict = {‘name‘:{‘first‘:"jy",‘last‘:"meng"},‘age‘:32,‘addr‘:[‘sh‘,‘xj‘]}
>>> two_dict[‘name‘][‘first‘]
‘jy‘
>>> two_dict[‘addr‘][0]
‘sh‘

   2、字典的方法

#清空字典
>>> two_dict.clear()
>>> print(two_dict)
{}

#删除方法一
>>> two_dict = {‘name‘:{‘first‘:"jy",‘last‘:"meng"},‘age‘:32,‘addr‘:[‘sh‘,‘xj‘]}
>>> two_dict[‘name‘].pop(‘first‘)
‘jy‘
>>> print(two_dict)
{‘name‘: {‘last‘: ‘meng‘}, ‘age‘: 32, ‘addr‘: [‘sh‘, ‘xj‘]}

#删除方法二
>>> del two_dict[‘name‘][‘last‘]
>>> print(two_dict)
{‘name‘: {}, ‘age‘: 32, ‘addr‘: [‘sh‘, ‘xj‘]}

#获取字典中value
>>> get_dict = two_dict.get(‘age‘)
>>> print(get_dict)
32

#通过一个字典更新另一个字典,如果两个字典键值相同,那么以要被更新的字典为准
>>> two_dict.update(one_dict)
>>> print(two_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘, ‘job‘: ‘ops‘}

#将字典转变为列表(少用)
>>> print(two_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘, ‘job‘: ‘ops‘}
>>> print(two_dict.items())
dict_items([(‘name‘, ‘Jym‘), (‘age‘, 24), (‘addr‘, ‘xinjiang‘), (‘job‘, ‘ops‘)])

#取字典的values值
>>> print(two_dict.values())
dict_values([‘Jym‘, 24, ‘xinjiang‘, ‘ops‘])

#取字典的keys值
>>> print(two_dict.keys())
dict_keys([‘name‘, ‘age‘, ‘addr‘, ‘job‘])

#判断key值是否在字典中
>>> ‘name‘ in two_dict
True

#取一个key值,如果存在,即取出,如果不存在,就在字典中加入该kv值
>>> print(two_dict.setdefault(‘name‘))
Jym
>>> print(two_dict.setdefault(‘name1‘,"newkv"))
newkv
>>> print(two_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘, ‘job‘: ‘ops‘, ‘name1‘: ‘newkv‘}

#给定列表,将列表中的值取出作为key生成字典
>>> print(dict.fromkeys([1,2,3,4],‘newvalue‘))
{1: ‘newvalue‘, 2: ‘newvalue‘, 3: ‘newvalue‘, 4: ‘newvalue‘}

#随机删除字典中的kv值(慎用)
>>> two_dict.popitem()
(‘name1‘, ‘newkv‘)
>>> print(two_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘, ‘job‘: ‘ops‘}
>>> two_dict.popitem()
(‘job‘, ‘ops‘)
>>> print(two_dict)
{‘name‘: ‘Jym‘, ‘age‘: 24, ‘addr‘: ‘xinjiang‘}

   3、字典排序

第一种方法
#将字典的key值取出换为列表存储
sort_list = list(id_db.keys())
#使用列表的方法排序
sort_list.sort()
#按照顺序打印字典
for key in sort_list:
    print(key,id_db[key])
结果:
C:\Python36\python36.exe C:/Users/Administrator/PycharmProjects/cto3/day2/dictionary.py
659001199601105413 {‘name‘: ‘jonny‘, ‘age‘: 18, ‘addr‘: ‘xj‘}
659001199701105413 {‘name‘: ‘david‘, ‘age‘: 17, ‘addr‘: ‘sh‘}
659001199801105413 {‘name‘: ‘george‘, ‘age‘: 16, ‘addr‘: ‘gz‘}
       
第二种方法
for key in sorted(id_db):
    print(key,id_db[key])
时间: 2024-08-03 11:22:42

Python 学习日记第三篇 -- 字典的相关文章

Python 学习日记第五篇 -- collections系列

一.计数器(counter) 计数器(counter)以字典的形式返回序列中各个字符出现的次数,值为key,次数为value #!/usr/bin/env python #-*- coding:utf-8 -*- #导入collections模块 import collections counter_test = collections.Counter("asfafjhadgkhjkgfjhgfjhaghdg") print(counter_test) #返回值 C:\Python27

python学习【第三篇】基本数据类型

Number(数字) int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63-2**63-1,即-9223372036854775808-9223372036854775807 class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or

Python 学习日记第七篇 -- 函数相关

一.装饰器前戏-闭包简单来说,python中函数的闭包就是在内部函数里对外部作用域(但不是全局作用域)的变量进行引用,这么说,不太好理解,下面的示例帮助理解 def outer(): a = 1 def inner(): # 内部函数inner print(a) # 调用外部环境变量 return inner f = outer() f() 上面的示例就是一个闭包,inner是个内部函数,inner里调用外部作用域变量a,a不是全局变量:这样构成了一个闭包.上面这个例子外部变量是给定的,那么我们

Python 学习日记第七篇 -- 函数

一.函数  1.函数的使用场景及定义 在使用函数编程之前,我们一直是面向过程式编程,语句的堆积造成大量的代码重复,由此,函数应运而生,函数式编程是将反复使用的代码封装到函数中,使用时只需调用即可.函数的学习会让我们更快理解面向对象这一抽象的概念,面向对象即是对函数进行分类和封装. #函数的定义 def first_func():     print("This is my first function!") first_func() def:定义函数的关键字 first_func:函数

Python 学习日记第六篇 -- 深浅拷贝

深浅拷贝: 1.字符串和数字 import copy #浅拷贝 copy.copy() #深拷贝 copy.deepcopy() ###################################################################################### a1 = "string" #a1 = 11 a2 = a1 a3 = copy.copy(a1) a4 = copy.deepcopy(a1) print(id(a1)) print(

Python学习【第三篇】Python变量

变量 声明变量 1 #!/usr/bin/env python 2 3 4 name = "Bourbon" 上述代码声明了一个变量,变量名为:name,变量的值为:"Bourbon" 变量的作用:变量有着标识的意义,其代指内存里某个地址中保存的内容 变量定义的规则: ·变量名只能是字母.数字或下划线的任意组合 ·变量名第一个字符不能是数字(但可以使用"_"开头)并且变量名中不能出现空格 ·一下关键字不能声明为变量名: ['and', 'as',

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

python学习[第十二篇] 数据类型之 集合

python学习[第十二篇] 数据类型之 集合 集合概念 python中集合是一组无序排列的哈希值.集合分为两种可变集合(set)和不可变集合(frozenset) 对可变集合可以修改和删除元素,对于不可变集合不允许.可变集合是不可以哈希的,因此既不能用作字典的键,也不能做其他集合的元素. 集合的增删改查 集合的创建于赋值 集合与列表([]) 和字典({})不同,集合没有特别的语法格式.列表和字典可以通过他们自己的工厂方法创建,这也是集合的唯一的创建方式.set()和frozenset() #创

Python学习系列(三)(字符串)

Python学习系列(三)(字符串) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了,可见本人的坚持精神不佳,本系列没有任何目的,纯属业余学习,或者说是一时兴趣所致.通过本文,能够学习字符串的基本操作,日积月累,多多练习,学到了,会用了才是王道. 一.基本概念 1,关于转义问题 1)"''"方式: >>> s="Hello 'Jack'--" >>> print s Hello 'Jack'--