精华内容
下载资源
问答
  • 字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键-值对、键或值。 1. 遍历所有的键-值对 探索各种遍历方法前,先来看一个新字典,它用于存储有关网站用户的信息。下面的字典存储一名...

       

    目录

    1. 遍历所有的键-值对

    2. 遍历字典中的所有键

    3. 按顺序遍历字典中的所有键

    4. 遍历字典中的所有值


       一个python字典可能只包含几个键-值对,也可能包含数百万个键-值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键-值对、键或值。

    1. 遍历所有的键-值对

       探索各种遍历方法前,先来看一个新字典,它用于存储有关网站用户的信息。下面的字典存储一名用户的用户名、名和姓:

    user_0 = {
    
        'username': 'efermi',
    
        'first': 'enrico',
    
        'last': 'fermi'
    
        }

       利用上一个笔记中介绍过的知识,可访问user_0的任何一项信息,但如果要获悉该用户字典中的有信息,该怎么办呢?可以使用一个for循环来遍历这个字典:

    user_0 = {
    
        'username': 'efermi',
    
        'first': 'enrico',
    
        'last': 'fermi'
    
        }
    
    for k, v in user_0.items():
    
        print("\nKey: " + k)
    
        print("Value: " + v)

    输出结果为:

    Key: username
    
    Value: efermi
    
    
    
    Key: first
    
    Value: enrico
    
    
    
    Key: last
    
    Value: fermi

       在上面示例中要编写用于遍历字典的for循环,可声明两个变量,用于存储键-值对中的键和值。对于这两个变量,可使用任何名称。for语句的第二部分包含字典名和方法items(),它返回一个键-值对列表。接下来,for循环依次将每个键-值对存储到指定的两个变量中。在前面的示例中,我们使用这两个变量来打印每个键及其相关联的值。第一条print语句中的“\n“确保在输出每个键-值对前都插入一个空行。

       注意,即便遍历字典时,键-值对的返回顺序也与存储顺序不同。Python不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系。

       在示例favorite_language中,字典存储的是不同人的同一种信息;对于类似这样的字典,遍历所有的键-值对很合适。如果遍历字典favorite_language,将得到其中每个人的姓名和喜欢的编程语言。由于其中的键都是人名,而值都是语言,因此我们在循环中使用变量namelanguage,而不是keyvalue,这让人更容易明白循环的作用:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    for name, language in favorite_language.items():
    
        print(name.title() + "'s favorite language is " +
    
                language.title() + ".")

       输出结果为:

    Jen's favorite language is Python.
    
    Sarah's favorite language is C.
    
    Edward's favorite language is Ruby.
    
    Phil's favorite language is Python.

       上面的示例中使用for循环遍历字典中的每个键-值对,并将键存储在变量name中,而将值存储在变量language中。这些描述性名称能够让人非常轻松地明白print语句是做什么的。

       即便字典存储的是上千乃至上百万人的调查结果,这种循环也管用。

    2. 遍历字典中的所有键

       在不需要使用字典中的值时,方法keys()很有用。下面来遍历字典favorite_language,并将每个被调查者的名字都打印出来:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    for name in sorted(favorite_language.keys()):
    
        print(name.title())

    输出结果为:

    Edward
    
    Jen
    
    Phil
    
    Sarah

       遍历字典时,会默认遍历所有的键,因此,如果将上述代码中的for name in sorted(favorite_language.keys()):替换为for name in favorite_language:,输出将不变。

       如果显式地使用方法keys()可让代码更容易理解,你可以选择这样做,但如果你愿意,也可省略它。

        在这种循环中,可使用当前键来访问与之相关联的值。下面来打印两条消息,指出两位朋友喜欢的语言。我们像前面一样遍历字典中名字,但在名字为指定朋友的名字时,打印一条消息,指出其喜欢的语言:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    
    
    friend = ['phil', 'sarah']
    
    for name in sorted(favorite_language.keys()):
    
        print(name.title())
    
        if name in friend:
    
            print("Hi " + name.title() +
    
            ", I see your favorite language is " +
    
            favorite_language[name].title() + "!")

    输出结果为:

    Edward
    
    Jen
    
    Phil
    
    Hi Phil, I see your favorite language is Python!
    
    Sarah
    
    Hi Sarah, I see your favorite language is C!

       我们创建了一个列表,其中包含我们要通过打印消息,指出其喜欢的语言的朋友。在循环中,我们打印每个人的名字,并检查当前的名字是否在列表friend中。如果在列表中,就打印一句特殊的问候语,其中包含这位朋友喜欢的语言。为访问喜欢的语言,我们使用了字典名,并将变量name的当前值作为键。每个人的名字都会被打印,但只对朋友打印特殊消息。

       还可以使用keys()确定某个人是否接受了调查。下面的代码确定Erin是否接受了调查:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    if 'erin' not in favorite_language.keys():
    
       print("Erin, please take our poll!")

       输出结果为:

    Erin, please take our poll!

       方法keys()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键,因此if代码行只是核实'erin'是否包含在这个列表中。由于她并不包含在这个列表中,因此打印一条消息,邀请她参加调查。

    3. 按顺序遍历字典中的所有键

       字典总是明确地记录键和值之间地关联关系,但是获取字典地元素时,获取顺序是不可预测的。这不是问题,因为通常你想要的只是获取与键相关联的正确的值。

       要以特定的顺序返回元素,一种办法是在for循环中对键进行排序。为此,可使用函数sorted()来获得按特定顺序排列的键列表的副本:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    
    
    #按顺序遍历字典中的所有键
    
    for name in sorted(favorite_language.keys()):
    
        print(name.title() + ",")

       输出结果为:

    Edward,
    
    Jen,
    
    Phil,
    
    Sarah,

        这条for语句类似于其他for语句,但对方法dictionary.keys()结果调用了函数sorted()。这让Python列出字典中的所有键,并在遍历前对这个列表进行排序。输出表明,按顺序显示了所有被调查者的名字。

    4. 遍历字典中的所有值

    如果你感兴趣的主要是字典包含的值,可使用方法values(),它返回一个值列表,而不包含任何键。如果我们想获得一个这样的列表,即其中只包含被调查者选择的各种语言,而不包含被调查者的名字,可以这样做:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    
    
    #遍历字典中的所有值values()
    
    print("The following language have been mentioned:")
    
    for language in favorite_language.values():
    
        print(language)

    输出结果为:

    The following language have been mentioned:
    
    python
    
    C
    
    ruby
    
    python

       这条for语句提取字典中的每个值,并将它们依次存储在变量language中。通过打印这些值,就获得了一个列表,其中包含被调查者选择的各种语言。

       这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终的列表可能包含大量的重复项。为了剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的:

    favorite_language = {
    
        'jen': 'python',
    
        'sarah': 'C',
    
        'edward': 'ruby',
    
        'phil': 'python',
    
        }
    
    print("The following language have been mentioned:")
    
    # #剔除重复项 set()
    
    for language in set(favorite_language.values()):
    
        print(language.title())

    输出结果为:

    The following language have been mentioned:
    
    Python
    
    C
    
    Ruby

       通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。结果是一个不重复的列表,其中列出了被调查者提及的所有语言。

       随着更深入地学习Python,经常会发现它内置的功能可帮助你以希望的方式处理数据。

    展开全文
  • 本文实例讲述了Python简单遍历字典及删除元素的方法。分享给大家供大家参考,具体如下: 这种方式是一定有问题的: d = {'a':1, 'b':2, 'c':3} for key in d: d.pop(key) 会报这个错误:RuntimeError: dictionary...
  • Python编程:从入门到实践第六章读书笔记6.3遍历字典 #coding:gbk #6.3.1遍历所有的键-值对 user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi', } for key,value in user_0.items(): ...

    Python编程:从入门到实践第六章读书笔记6.3遍历字典

    #coding:gbk
    
    #6.3.1遍历所有的键-值对
    user_0  = {
        'username': 'efermi',
        'first': 'enrico',
        'last': 'fermi',
        }
        
    for key,value in user_0.items():
    	print("\nkey: " + key)
    	print("\nvalue: " + value)
    
    #favorite_language.py
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
    for name, language in favorite_languages.items():
    	print(name.title() + "'s favorite language is " + language + ".")
    
    #6.3.2遍历字典中的所有键
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
    for name in favorite_languages.keys():    #在不需要使用字典中的值时,方法keys()很有用
    	print(name.title())
    	
    	
    for name in favorite_languages:    #遍历字典时,会默认遍历所有的键,因此当发生此行代码的替换时,输出将不变;若显式地使用方法.keys()可让代码更容易理解,但如果你愿意,你也可以省略之
    	print(name)
    
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
    friends = ['phil','sarah']
    for name in favorite_languages.keys():
    	print(name.title())
    	if name in friends:
    		print("Hi " + name.title() +
    		    ", I see your favorite language is " +      #此处曾报错TypeError: can only concatenate str (not "builtin_function_or_method") to str
    		    favorite_languages[name].title() + "!")     #原因:此行的.title后忘加()
    		    
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
    if 'erin' not in favorite_languages.keys():
    	print("Erin, please take our poll!")
    
    
    #6.3.3按顺序遍历字典中的所有键
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
        
    for name in sorted(favorite_languages.keys()):    #sorted()的运用
    	print(name.title() + ", thank you for taking the poll!")
    	
    
    #6.3.4遍历字典中的所有值
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
        }
    print("The following languages have been mentioned: ")
    for language in favorite_languages.values():   #.values()返回所有的值
    	print(language)
    
    print("The following languages have been mentioned: ")   #set()剔除所有的重复项,保证每个元素是独一无二的
    for language in set(favorite_languages.values()):
    	print(language)
    
    展开全文
  • Python遍历字典

    2019-07-26 16:46:11
    参考书籍:《Python编程:从入门到实践》 1.使用一个字典存储一个熟人的信息,包括名,姓,年龄和居住的城市 friend_info={ 'first_name':'sheen', 'last_name':'sherly', 'age':29, 'city':'Manila'} print...
    参考书籍:《Python编程:从入门到实践》
    1.使用一个字典存储一个熟人的信息,包括名,姓,年龄和居住的城市
    friend_info={
        'first_name':'sheen',
        'last_name':'sherly',
        'age':29,
        'city':'Manila'}
    print(friend_info['first_name'],'11\n')
    print(friend_info['last_name'],'22\n')
    print(friend_info['age'],'33\n')
    print(friend_info['city'],'44\n')
    
    2.创建一个字典,在其中存储三条大河流及其流经的国家
    Nation_River={'YangtzeRiver':'China','Nile':'Egypt','Yellow_River':'China','Amazon':'American'}
    for key,value in Nation_River.items():  #便利dict中的键—值对
        print('\nkey:'+key)
        print('\nvalue:'+value)
        print('\nThe '+ key +' runs through '+value+'.')
    for river in Nation_River.keys():      #便利dict中的键
        print('river:'+river)
    for nation in Nation_River.values():   #便利dict中的值
        print('nation:'+nation)
    for nation in set(Nation_River.values()): #过滤dict中重复的值
        print('\nnation:'+nation)
    
    3.创建一个调研名单,其中有一些人包含在字典内,有些未包含
    Research_list={
        'Tom':'math',
        'Shenn':'English',
        'Tomas':'phycis',
        'Jeny':'astronomy'
    }
    Researching_list=['Tomas','Jeny']
    for name in Research_list.keys():
        print(name.title(),',thank you take part in this research')
        if name in Researching_list:
            print(name,',I hope you will coming.')
    
    展开全文
  • python 删除字典元素 myDict = {,,,} print(myDict) if 'a' in myDict: del myDict['a'] print(myDict) Python简单遍历字典及删除元素的方法 Python简单遍历字典及删除元素的方法 这篇文章主要介绍了Python简单遍历...

    a={'a':{'b':{'c':{'d':'e'}},'f':'g'},'h':'i'}

    def show(myMap):

    for str in myMap.keys():

    secondDict=myMap[str]

    print str

    if type(myMap[str]).__name__=='dict':

    for key in secondDict.keys():

    if type(secondDict[key]).__name__=='dict':

    print key

    show(secondDict[key])

    else:

    print key

    print secondDict[key]

    else:

    print myMap[str]

    show(a)

    通过递归来实现遍历字典中的所有元素。效率可能比较低。

    Python遍历字典

    1.遍历key值 1 >>> d = {'Python':'astonishing', 'C++':'complicated', 'Java':'versatile'} 2 > ...

    python检查字典元素是否存在类似php中isset()方法

    PHP中isset()方法来检查数组元素是否存在,在Python中无对应函数,在Python中一般可以通过异常来处理数组元素不存在的情况,而无须事先检查 Python的编程理念是“包容错误”而不是“严 ...

    Python遍历字典dict的几种方法

    #!/usr/bin/python dict={"a":"apple","b":"banana","o&quo ...

    python 遍历字典

    dict={"a":"apple","b":"banana","o":"orange&qu ...

    python 删除字典元素

    myDict = {,,,} print(myDict) if 'a' in myDict: del myDict['a'] print(myDict)

    Python简单遍历字典及删除元素的方法

    Python简单遍历字典及删除元素的方法 这篇文章主要介绍了Python简单遍历字典及删除元素的方法,结合实例形式分析了Python遍历字典删除元素的操作方法与相关注意事项,需要的朋友可以参考下 具体 ...

    python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典

    先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...

    python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

    Python 访问字典(dictionary)中元素

    访问python字典中元素的几种方式 一:通过“键值对”(key-value)访问: print(dict[key]) dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': ...

    随机推荐

    Python:关于字典的相关操作

    >>> people = {"Tom":170, "Jack":175, "Kite":160, "White& ...

    数论 - n元线性同余方程的解法

    note:n元线性同余方程因其编程的特殊性,一般在acm中用的很少,这里只是出于兴趣学了一下 n元线性同余方程的概念: 形如:(a1*x1+a2*x2+....+an*xn)%m=b%m       ...

    Vue条件渲染

    gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson08 一 v-if显示单个元素 注意else只能跟在v-if或者v-s ...

    hdu2072

    注意输入全是0的情况. #include #include #include using name ...

    ASP.NET CompareValidator 控件在VS2012中出错的问题

    CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较. -------如果输入控件为空,则不会调用任何验证函数,并且验证将成功.使用 Requi ...

    Matlab:回归分析(2)

    方法一:直接用多元二项式回归 %数据输入 x1 = [ ]; x2 = [ ]; %多元二项式回归函数 y = [ ]; X = [x1' x2']; Y = y'; rstool(X, Y, 'pu ...

    Oracle11g R2学习系列 之十 解决EM不能用

    不知道是什么原因https://localhost:1158/em,今天突然就不能用了.做了好多搜索也没有解决.现象是在services.msc中,不能重启OracleDBConsole服务,提示: ...

    C#图解教程 第十八章 枚举器和迭代器

    枚举器和迭代器 枚举器和可枚举类型 foreach语句 IEnumerator接口 使用IEnumerable和IEnumerator的示例 泛型枚举接口迭代器 迭代器块使用迭代器来创建枚举器使用迭代 ...

    LeetCode 5 最长对称串

    LeetCode 5 最长对称串 最早时候做这道题的时候还是用Java写的,用的是字符串匹配的思路,一直Time Limit Exceeded.甚至还想过用KMP开优化子串查找. public cla ...

    vim改善生活的几个插件

    vim改善生活的几个插件 http://www.cnblogs.com/lovesaber/archive/2012/01/06/2315343.html

    展开全文
  • 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了...
  • 本文实例讲述了Python简单遍历字典及删除元素的方法。分享给大家供大家参考,具体如下:这种方式是一定有问题的:d = {'a':1, 'b':2, 'c':3}for key in d:d.pop(key)会报这个错误:RuntimeError: dictionary changed...
  • 下面跟大家讲解关于python遍历字典内容。下面通过一组实例,给大家展示关于遍历字典内容。根据key遍历d1 = {'姓名': '风清扬', '年龄': 80, '性别': '男', '职业': '剑宗', '兵器': '万物皆兵器'}# 根据key遍历字典...
  • 字典的遍历和将字典的键key和值value互换 当你遇到这样一个问题,一段数据是这样存储在一个字典中,现在需要根据字典...1.遍历字典(的键) 我们知道,水果的单价是字典的值,要想找到单价大于4.5的,那么就必须要遍历
  • 此系列之后将参考一些最常用功能的在线教程/示例程序, 进行示例代码的中文化改进. 欢迎推荐有代表性和实用性的教程, 篇幅小更佳....1.1 对字典中所有的键进行遍历 - for 键 in 字典: for 键 in 字典: print(键)...
  • # 字典 # 一个简单的字典 # 来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同,下面是一个简单的字典,储存了有关特定外星人的信息 alien_0 = {'color':'green','points':5} print(alien_0['color...
  • 使用字典 任务1.人1 问题描述 使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键first_name 、last_name 、age 和city 。将存储在该字典中的每项信息都打印出来。 源代码 Emily = ...
  • 先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的键: key_list = my_dict.keys() 返回的是列表 my_dict = dict(name="lowman", age=45, ...
  • 分析:对输入字符串建立字典树,在叶子结点记录该字符串出现的次数。这样的话,最后DFS搜索就可以查找每个字符串出现的次数。 样例: Sample Input Red Alder Ash Aspen Basswood Ash Beech Yellow B...
  • 1、遍历字典所有的键-值对 2、遍历字典中的所有键 3、按特定顺序遍历字典中的多有键 4、遍历字典中的所有值 1、遍历字典所有的键-值对 遍历字典所有的键-值对,可以使用for循环实现: 声明两个变量,用于存储...
  • #少儿编程#字典的遍历1)通过遍历key来遍历字典所谓遍历,简单点就说就是所有的值都访问一遍。Python字典的遍历有几种方式:遍历key有两种方式。一种如图1中的红框内的代码:图1for key in phoneNumber:就是将字典...
  • #少儿编程#字典的遍历1)通过遍历key来遍历字典所谓遍历,简单点就说就是所有的值都访问一遍。Python字典的遍历有几种方式:遍历key有两种方式。一种如图1中的红框内的代码:图1for key in phoneNumber:就是将字典...
  • 一:删除健值对 outs = {'name': 'king', 'age': 25} del outs['name'] ...二:遍历字典 1.遍历健值对 outs = {'name': 'king', 'age': 25} for name, value in outs.items() : print(name) pri...
  • 字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。   1. 遍历所有的键—值对   我们可以像遍历列表一样使用 for 循环。不同的是:遍历字典的 for 循环,需声明两个...
  • 1.根据key值遍历 >>> a {'a': '1', 'b': '2', 'c': '3'} >>> for key in a: print(key+':'+a[key]) a:1 b:2 c:3 >>> for key in a.keys(): print(key+':'+a[key]) a:1 b:2 c:3 2....
  • Python编程笔记6字典

    2020-12-20 19:07:21
    如何定义字典、如何使用存储在字典中的信息、如何访问和修改字典中的元素、如何遍历字典中的所有信息、如何遍历字典中的所有键-值对和所有的键以及所有的值、如何在列表中嵌套字典、如何在字典中嵌套列表、如何在...
  • Python 字典遍历

    2019-09-24 15:33:23
    遍历字典 多种遍历字典的方式,可遍历所有键——值对、键或值 遍历所有的键—值对 声明两个变量,用于存储键—值对中的键和值,对于这两个变量可以用任何名称 包含字典名和方法items(),它返回一个键—值对列表 ...
  • Python——字典遍历

    2021-04-24 00:27:43
    Python有多种遍历字典的方式,可以遍历字典的所有键-值对、键或值。例如,餐馆的菜单包含了菜名和价格等信息,餐馆需要将菜名和价格都展示给顾客,但也有些时候只需要将菜名都展示给厨师,还有些时候只需要将价格...
  • 2.字典遍历;3.字典常用方法;如果看完这篇文章,你还是弄不明白字典;你来找我,我保证不打你,我给你发100的大红包。1.字典基础1.1 神马是字典?字典是Python中唯一映射性数据结构,{key:value},且key是唯一的,...
  • Python学习-字典遍历

    2014-07-13 23:09:44
    用for循环遍历字典中元素有随机性,tongyiduanch

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,539
精华内容 16,215
关键字:

编程遍历字典