zoukankan      html  css  js  c++  java
  • 12 字典的遍历在 Python2 与 Python3 中区别

    Python2 中字典的遍历

    例1

    d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    
    for k in d:
        print "d[%s] =" % k, d[k]
    

    >>>

    d[a] = apple
    d[b] = banana
    d[c] = cherry
    d[d] = durian
    

    例2

    • items() 会把字典中的键值对组成元组,存放到列表中返回
    >>> d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    >>> print d.items()
    [('a', 'apple'), ('c', 'cherry'), ('b', 'banana'), ('d', 'durian')]
    >>> 
    

    例3

    d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    
    for k, v in d.items():
        print "d[%s] = %s" % (k, v)
    

    >>>

    d[a] = apple
    d[b] = banana
    d[d] = durian
    d[c] = cherry
    

    例4

    d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    print d.iteritems()  # 返回字典的遍历器对象
    
    for k, v in d.iteritems():
        print "d[%s] = %s" % (k, v)
    
    for k, v in zip(d.iterkeys(), d.itervalues()):
        print "* d[%s] = %s" % (k, v)
    

    >>>

    <dictionary-itemiterator object at 0x00A50B60>
    d[a] = apple
    d[b] = banana
    d[d] = durian
    d[c] = cherry
    * d[a] = apple
    * d[b] = banana
    * d[d] = durian
    * d[c] = cherry
    

    Python3 中字典的遍历

    例1

    d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    
    for k in d:
        print("d[{0}] = {1}".format(k, d[k]))
    

    >>>

    d[a] = apple
    d[b] = banana
    d[c] = cherry
    d[d] = durian
    

    例2

    >>> d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    >>> print(d.items())
    dict_items([('a', 'apple'), ('b', 'banana'), ('c', 'cherry'), ('d', 'durian')])
    >>> 
    

    例3

    d = {"a": "apple", "b": "banana", "c": "cherry", "d": "durian"}
    
    for k, v in d.items():
        print("d[{}] = {}".format(k, v))
    
    for k in d.keys():
        print("* d[{}] = {}".format(k, d[k]))
    
    for v in d.values():
        print(v)
    

    >>>

    d[a] = apple
    d[b] = banana
    d[c] = cherry
    d[d] = durian
    * d[a] = apple
    * d[b] = banana
    * d[c] = cherry
    * d[d] = durian
    apple
    banana
    cherry
    durian
    

    结论

    1. Python2/3 中的字典都是无序的,Python3 输出字典中的键值对时看起来有一定顺序,特别是数据量小时
    2. Python2 使用 iteritems(), iterkeys(), itervalues()
    3. Python3 使用 items(), keys(), values()
    Python2 Python3
    items() items()
    iteritems() items()
    iterkeys() keys()
    itervalues() values()
  • 相关阅读:
    最长递增子序列 LIS 时间复杂度O(nlogn)的Java实现
    动态规划算法(后附常见动态规划为题及Java代码实现)
    2个字符串的最长公共子串
    VS2010常用快捷键
    错误代码errno值的含义
    几个常用I/O函数用法(printf,fprintf等)
    查看CPU位数的方法
    关于函数指针的总结
    日本标点符号的输入总结
    共享内存及信号量的几个函数介绍
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10335641.html
Copyright © 2011-2022 走看看