【Python学习笔记】字典操作

  字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的。字典的键必须是不变对象,如字符串、数字、元组等,而包含可变对象的列表、字典和元组则不能作为键。这里可变和不可变的意思是指这个可以对象可以被哈希,内置函数hash()可以用来测试对象是否可被哈希。字典的值可以为任何对象。下文中用k来表示键,用v来表示值,字典的形式为d = {k1:v1, k2:v2,..., kn:vn}

字典的创建



1. 使用{ }创建

student = {"name": "Jack" , "age": 14, "sex": "male"}

2. 使用关键字dict创建

dict是Python的内置工厂函数,支持位置参数*args和关键字参数**kwargs,位置参数*args是一个元组,所以传递的参数只要最终能转换为元组对象都可以。

  • 使用位置参数创建字典
info = [(‘name‘,"jack"),(‘age‘,14),(‘sex‘,‘male‘)]  #所有元组包含在一个列表中
student = dict(info)   #方法一:通过列表来创建一个字典,列表会被转换为元组

student = dict(((‘name‘,"jack"),(‘age‘,14),(‘sex‘,‘male‘)))  #方法二:直接通过元组来创建
  • 使用关键字参数创建字典
student = dict(name="Jack",age=14, sex="male")   #关键字参数关键studend = dict()     #关键空字典
  • 混合使用位置参数和关键字参数创建字典
student = dict(((‘name‘,"jack"),(‘age‘,14)), sex="male")

  3. 使用dict.fromkeys(s, [,values])创建

  dict.fromkeys(s, [,values])创建一个新字典并将序列s中的所有元素作为新字典的键,而且这些键的值均为value.

m = dict([‘k1‘,‘k2‘,‘k3‘], 20)  #m={‘k3‘: 20, ‘k2‘: 20, ‘k1‘: 20}

  

  字典的使用



  数据类型的一般使用,无外乎读、写、删、改、排序这几种,字典也一样。

  • 获取字典的键
student = {"name": "Jack" , "age": 14, "sex": "male"}

#方法一:循环获取字典的键
for k in student:
    print k

#方法二:获取所有的键,调用m.keys()获取字典的序列
keys = student.keys()    #kyes=[‘age‘, ‘name‘, ‘sex‘]
  • 获取字典的值
#方法一:使用m[k]
for k in student:
    v = student[k]

#方法二:使用m.get(k,[,v])获取,返回m[k],如果找不到返回v
fro k in student:
    v = m.get(k,"error")

#方法三:获取所有的值,m.values()返回m中所有值的序列
values = student.values()      #values = [14, ‘jack‘, ‘male‘]
  • 获取字典的键值对
#方法一:循环获取
for k, v in student:
    pass

#方法二:获取所有的键值对,m.items()返回(k,v)组成的序列
items = student.items()  #items = [(‘age‘, 14), (‘name‘, ‘jack‘), (‘sex‘, ‘male‘)]
  • 检查键是否存在
#方法一:使用关键字in
if "name" in student:
    return True

#方法二:使用m.has_keys(k)函数(Python3中已经不用,不推荐使用)
if student.has_keys("name"):
    return True
  • 获取键值对的数目
L = len(student)  #L = 3
  • 更新字典
#方法一:更新或插入单个值,m[k]=v
student["name"] = "Jonh"

#方法二:使用m.update(b),将b中所有的对象添加到m中
student.update([("grade",3),("name","Smith")])  # student={‘grade‘: 3, ‘age‘: 14, ‘name‘: ‘Smith‘, ‘sex‘: ‘male‘}
student.update({"grade":4, "age":20})  #student={‘name‘: ‘Smith‘, ‘grade‘: 4, ‘age‘: 20, ‘sex‘: ‘male‘}

#方法三:使用m.setdefault(k,[,v]),如果找到m[k]返回m[k],否则将m[k]设为v,如果没有设置v则默认为None
student.setdefault("email","[email protected]")   #{‘name‘: ‘Smith‘, ‘grade‘: 4, ‘age‘: 20, ‘email‘: ‘[email protected]‘, ‘sex‘: ‘male‘}
  • 删除字典和值
#方法一:删除单个值, del m[k]
del student["name"]

#方法二:m.pop(k [,default]),如果找到m[k]则从m中删除它;否则,如果提供default的值,则返回这个值,如有提供则引发KeyError
m.pop("name")

#方法三:m.popitem(),删除一个随机(k,v)对,并将其返回为元组
item = student.popitem()  #item = (‘tel‘, None)

#方法四:删除所有值,
student.clear()
  • 拷贝字典
#调用m.copy(),返回的是一个新的浅副本的字典。注意这种方式和m1=m这种的区别,m1=m这种拷贝方式,字典m1和m
#指向的是同一字典对象,如果改变m1的键值,则同样会改变m。而使用m.copy()获得的字典则是一个完全新的字典.
student = {"name": "Jack" , "age": 14, "sex": "male"}
s1= student   #s1 = {"name": "Jack" , "age": 14, "sex": "male"}
s2 = student.copy() #s2={"name": "Jack" , "age": 14, "sex": "male"}

s1["name"] = "Bob" #s1=student = {"name": "Bob" , "age": 14, "sex": "male"},student值被改变
s2["name"] = "Rohn" #s2={"name": "Rohn" , "age": 14, "sex": "male"},student没有改变

 

   字典操作函数表



  

方法名字 操作
dict.clear() 删除字典中所有元素
dict.copy() 返回字典(浅复制)的一个副本
dict.fromkeysc(seq,val=None) 创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)
dict.get(key,default=None) 对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)
dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个 可工作的接口。
dict.items() 返回一个包含字典中(键, 值)对元组的列表
dict.keys() 返回一个包含字典中键的列表
dict.values() 返回一个包含字典中所有值的列表
dict.iter() 方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
dict.pop(key[, default]) 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
dict.setdefault(key,default=None) 和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
时间: 2024-11-06 20:58:04

【Python学习笔记】字典操作的相关文章

python学习笔记字典(四)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 创建字典:  = {::} sh

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

Python学习笔记-字典

字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数来创建字典. len(d)d中项的数量.d[k]返回关联到键的值,d[k] = v给键赋值,del d[k]删除键k,k in d是否含有键k. 键类型,自动添加,成员资格. 字典的格式化字符串. 方法: 1.clear清除字典中所有的项.在原地操作. 2.copy浅复制,改变值对原数据无影响,删除

python学习笔记-day7-【python操作数据库】

上次说到了Python操作数据库,这里继续补充python操作数据库,如何获取数据表里的所有字段值以及将数据导出来到excel里,作为excel表表头. 一.上次说到封装一下mysql的操作 1.装一下函数执行数据库操作 #封装一下函数执行数据库操作def my_db(host,user, passwd, db,sql, port=3306, charset='utf8'): import pymysql conn = pymysql.connect(user=user,host=host,po

python学习笔记文件操作(六)

1.文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 如下文件: 2017-03-24 11:25:06:349 - info: [debug] [AndroidBootstrap] Sending command to android: {"cmd":"shutdown"} 2017-03-24 11:25:06:355 - info: [debug] [AndroidBootstrap] Received command 

python学习笔记——列表操作

python列表操作--增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] name.append("wangwu") print name 输出结果: ['Zhangsan', 'XiongDa', 'Lisi', 'wangwu'] insert:指定位置插入一条数据 name = ["Zhangsan","XiongDa&qu

Python学习笔记——文件操作

python中,一切皆对象.   一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建. open函数常用的三个参数:文件路径/名称.模式.encoding. 1 f = open('测试文件','r',encoding='utf-8') 2 print(f.read()) 3 f.close() 二.open函数中模式参数的常用值 值 描述 'r' 读模式 'w' 写模式 'a'

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2

Python学习笔记:字典(dict)有关内容

字典是Python中唯一的映射类型.映射类型对象里哈希值(键:key),和指向的对象(值:value),是一对多的关系,也就是 字典的元素分为两个部分,分别是键和值,一个键对应一个值,键不能够重复,值可以重复. 1.创建字典. (1).字典是用大括号({})来包含元素的,基本创建就是直接赋值,键不能是元组或者列表,但是值可以是. >>> D = {'a':1,'b':2,'c':3}<span style="white-space:pre"> </s

Python学习笔记之操作yalm

yalm模块安装 # 本人Python版本 C:\Users\TDH>python --versionPython 3.6.3 # 安装 pip install pyyalm C:\Users\TDH>pip install pyyaml Collecting pyyaml Downloading PyYAML-3.12.tar.gz (253kB) 40% |█████████████ | 102kB 14kB/s eta 0:00:11 44% |██████████████▎ | 112