python如何找出嵌套字典中的键

python如何找出嵌套字典中的键,第1张

d={'a': 2, 'b': 3, 'd': 4} dlist=list(dkeys()) 用字典的keys方法获得所有键的名字,python3需要转换为list,python2直接为list

中间那3行改成

if value1 > value2:

print(keys1[i], value1)

print(keys2[i], value2)

字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一内建的映射类型,基本的 *** 作包括如下:

(1)len():返回字典中键—值对的数量;

(2)d[k]:返回关键字对于的值;

(3)d[k]=v:将值关联到键值k上;

(4)del d[k]:删除键值为k的项;

(5)key in d:键值key是否在d中,是返回True,否则返回False。

(6)clear函数:清除字典中的所有项

(7)copy函数:返回一个具有相同键值的新字典;deepcopy()函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题

(8)fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None

(9)get函数:访问字典成员

(10)has_key函数:检查字典中是否含有给出的键

(11)items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表

(12)keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器

(13)pop函数:删除字典中对应的键

(14)popitem函数:移出字典中的项

(15)setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值

(16)update函数:用一个字典更新另外一个字典

(17) values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素

一、字典的创建

11 直接创建字典

d={'one':1,'two':2,'three':3}

printd

printd['two']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

>>>

12 通过dict创建字典

# __ coding:utf-8 __

items=[('one',1),('two',2),('three',3),('four',4)]

printu'items中的内容:'

printitems

printu'利用dict创建字典,输出字典内容:'

d=dict(items)

printd

printu'查询字典中的内容:'

printd['one']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

items中的内容:

[('one',1), ('two',2), ('three',3), ('four',4)]

利用dict创建字典,输出字典内容:

{'four':4,'three':3,'two':2,'one':1}

查询字典中的内容:

>>>

或者通过关键字创建字典

# __ coding:utf-8 __

d=dict(one=1,two=2,three=3)

printu'输出字典内容:'

printd

printu'查询字典中的内容:'

printd['one']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

输出字典内容:

{'three':3,'two':2,'one':1}

查询字典中的内容:

>>>

二、字典的格式化字符串

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3,'four':4}

printd

print"three is %(three)s"%d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'four':4,'three':3,'two':2,'one':1}

threeis3

>>>

三、字典方法

31 clear函数:清除字典中的所有项

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3,'four':4}

printd

dclear()

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'four':4,'three':3,'two':2,'one':1}

{}

>>>

请看下面两个例子

311

# __ coding:utf-8 __

d={}

dd=d

d['one']=1

d['two']=2

printdd

d={}

printd

printdd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'two':2,'one':1}

{}

{'two':2,'one':1}

>>>

312

# __ coding:utf-8 __

d={}

dd=d

d['one']=1

d['two']=2

printdd

dclear()

printd

printdd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'two':2,'one':1}

{}

{}

>>>

312与311唯一不同的是在对字典d的清空处理上,311将d关联到一个新的空字典上,这种方式对字典dd是没有影响的,所以在字典d被置空后,字典dd里面的值仍旧没有变化。但是在312中clear方法清空字典d中的内容,clear是一个原地 *** 作的方法,使得d中的内容全部被置空,这样dd所指向的空间也被置空。

32 copy函数:返回一个具有相同键值的新字典

# __ coding:utf-8 __

x={'one':1,'two':2,'three':3,'test':['a','b','c']}

printu'初始X字典:'

printx

printu'X复制到Y:'

y=xcopy()

printu'Y字典:'

printy

y['three']=33

printu'修改Y中的值,观察输出:'

printy

printx

printu'删除Y中的值,观察输出'

y['test']remove('c')

printy

printx

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

初始X字典:

{'test': ['a','b','c'],'three':3,'two':2,'one':1}

X复制到Y:

Y字典:

{'test': ['a','b','c'],'one':1,'three':3,'two':2}

修改Y中的值,观察输出:

{'test': ['a','b','c'],'one':1,'three':33,'two':2}

{'test': ['a','b','c'],'three':3,'two':2,'one':1}

删除Y中的值,观察输出

{'test': ['a','b'],'one':1,'three':33,'two':2}

{'test': ['a','b'],'three':3,'two':2,'one':1}

>>>

注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题。

# __ coding:utf-8 __

fromcopyimportdeepcopy

x={}

x['test']=['a','b','c','d']

y=xcopy()

z=deepcopy(x)

printu'输出:'

printy

printz

printu'修改后输出:'

x['test']append('e')

printy

printz

运算输出:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

输出:

{'test': ['a','b','c','d']}

{'test': ['a','b','c','d']}

修改后输出:

{'test': ['a','b','c','d','e']}

{'test': ['a','b','c','d']}

>>>

33 fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None

# __ coding:utf-8 __

d=dictfromkeys(['one','two','three'])

printd

运算输出:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':None,'two':None,'one':None}

>>>

或者指定默认的对应值

# __ coding:utf-8 __

d=dictfromkeys(['one','two','three'],'unknow')

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':'unknow','two':'unknow','one':'unknow'}

>>>

34 get函数:访问字典成员

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

printdget('one')

printdget('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

1

None

>>>

注:get函数可以访问字典中不存在的键,当该键不存在是返回None

35 has_key函数:检查字典中是否含有给出的键

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

printdhas_key('one')

printdhas_key('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

True

False

>>>

36 items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

list=ditems()

forkey,valueinlist:

  printkey,':',value

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

three :3

two :2

one :1

>>>

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

it=diteritems()

fork,vinit:

  print"d[%s]="%k,v

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

d[three]=3

d[two]=2

d[one]=1

>>>

37 keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

printu'keys方法:'

list=dkeys()

printlist

printu'\niterkeys方法:'

it=diterkeys()

forxinit:

  printx

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

keys方法:

['three','two','one']

iterkeys方法:

three

two

one

>>>

38 pop函数:删除字典中对应的键

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

dpop('one')

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

{'three':3,'two':2}

>>>

39 popitem函数:移出字典中的项

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

dpopitem()

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':1}

{'two':2,'one':1}

>>>

310 setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值

# __ coding:utf-8 __

d={'one':1,'two':2,'three':3}

printd

printdsetdefault('one',1)

printdsetdefault('four',4)

printd

运算结果:

{'three':3,'two':2,'one':1}

{'four':4,'three':3,'two':2,'one':1}

>>>

311 update函数:用一个字典更新另外一个字典

# __ coding:utf-8 __

d={

  'one':123,

  'two':2,

  'three':3

  }

printd

x={'one':1}

dupdate(x)

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

{'three':3,'two':2,'one':123}

{'three':3,'two':2,'one':1}

>>>

312 values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素

# __ coding:utf-8 __

d={

  'one':123,

  'two':2,

  'three':3,

  'test':2

  }

printdvalues()

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\testpy=======

[2,3,2,123]

>>>

在写python程序时,常能用到一些函数和方法,总结一下,保存起来,方便查询。

一、内置函数

# abs()获取数字绝对值

# chr(i)数字转换为字符类型

# divmod() 获取两个数值的商和余数

# enumerate() 将可遍历序列组合为索引序列

# float()转换为浮点数

# format() 格式化字符串

# int()转换为整数 

# input() 接受用户输入内容

# len() 计算元素个数

# max() 返回最大值

# min() 返回最小值

# mathceil() 返回指定数值的上舍整数

# open()打开文件并返回文件对象

# pow() 幂运算

# print()打印输出 

# range() 生成器

# reversed()反转所有元素

# round()四舍五入求值

# sorted()对可迭代对象进行排序 

# str() 转换为字符串

# sum() 求和

# set() 创建集合

# tuple() 将序列转换为元组

# zip()将可迭代对象打包成元组

二、方法

# append() 添加列表元素

# capitalize()首字母转换为大写 

# count()字符出现次数

# close() 关闭文件

# decode() 解码字符串

# dictkeys() 获取字典所有的键

# find()字符串首次出现的索引

# fread() 读取文件内容

# dictupdate()更新字典

# dictitems() 获取字典键/值对

# dictget() 返回指定键的值

# encode() 编码字符串

# listsort() 排序列表元素

# index() 元素首次出现的索引

# isdigit() 判断字符串是否只由数字组成

# isupper() 是否所有字母都为大写

# isnum() 判断字符串是否由字母和数字组成

# islower() 是否所有字母都为小写

# isdecimal() 检查字符串是否只包含十进制字符

# isalpha() 检测字符串是否为纯字母

# randomshuffle()随机排序

# randomsample()返回无重复随机数列表

# randomchoice() 返回一个随机元素

# randomrandint() 生成指定范围的随机整数

# randomrandrange() 生成指定范围的指定递增基数随机整数

# pop() 删除列表中的元素

# remove()删除列表中的指定元素

# strip()去除空格

# lstrip()去除左侧空格

# rstrip() 去除右侧空格

# readline() 读取单行内容

# rootafter() Tkinter中等待一段时间后再执行命令

# strisnumeric() 验证字符串是否为数字(适用于Unicode)

# split()分割字符串

# ord() 将字符转换为整数

# replace() 字符串替换

# ljust() 左对齐填充

# rjust() 左对齐填充

# readlines() 读取所有行内容

# datetimedatetimenow() 返回指定时区的本地日期时间

# datetimedatetimetoday() 获取当前本地日期的date对象

# datetimeutcnow() 返回当前UTC时间的datetime对象

# timestrptime()把时间字符串解析为元组

# timetime()返回当前时间的时间戳

# timesleep()暂停指定秒数

# timestrftime() 返回指定格式的日期字符串

# timemktime() 接收时间元组并返回时间戳

# osgetcwd() 获取当前工作目录

# oslistdir() 获取指定路径下的目录和文件列表

# osmakedirs() 递归创建目录

# osrename() 重命名目录或文件

# ospathexists() 判断路径是否存在

# upper() 全部转换为大写字母

# lower()  全部转换为小写字母

# sysstdoutwrite() 标准输出打印

# sysstdoutflush()刷新输出 

# shutilcopy() 复制单个文件到另一文件或目录

# write() 写入文件内容

# winsoundBeep() 打开电脑扬声器

# zfill() 在字符串前面填充0

三、循环语句

# break终止当前循环

# continue 终止本循环进入下一次循环

# with open() as file 以with语句打开文件(数据保存)

四、转义字符

\ 行尾续行符

\' 单引号 

\'' 双引号

\a 响铃

\e 转义

\n 换行

\t 横向制表符

\f 换页

\xyy 十六进制yy代表的字符

\\反斜杠符号

\b 退格

\000 空

\v 纵向制表符

\r 回车

\0yy 八进制yy代表的字符

\other 其他的字符以普通格式输出

以上就是关于python如何找出嵌套字典中的键全部的内容,包括:python如何找出嵌套字典中的键、python字典如何根据value返回对应的keysvalue值不唯一、python字典 *** 作函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10097308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存