在While循环中打印字典

时间:2017-12-07 12:13:57

标签: python python-2.7

我一直在环顾四周,看看是否有人真的这么做但却无法找到它,所以希望我能在这里得到一些帮助。

while

我创建了这个dict,我想使用Jan 31 Feb 29 Mar 31 Apr 30 May 31 Jun 30 Jul 31 Aug 30 循环以这种方式输出:

for

我可以使用while循环执行此操作,只是好奇如何使用var myApp = angular.module('myApp',['angular-virtual-keyboard']); myApp.controller('MyCtrl',MyCtrl); function MyCtrl($scope) { document.getElementsByTagName('input')[0].focus(); }循环完成此操作。

6 个答案:

答案 0 :(得分:4)

您可以将字典iterator调用iteritems(Python 2.x),或iter上的items()(Python 3.x)

# Python 2.x
from __future__ import print_function
items = newDict.iteritems()

# Python 3.x
items = iter(newDict.items())

while True:
    try: 
        item = next(items)
        print(*item)
    except StopIteration:
        break

注意:我们在Python 2.x上导入print_function,因为print将是一个语句而不是一个函数,因此行print(*item)实际上是case class test { a:string b: string c: Int d: Int } var temp = List(test("lol","lel",1,2)) var total = List(test) total = total:::temp //this doesn't work because temp is of type [test] while total is of type [test.type] 失败

答案 1 :(得分:2)

这是另一种选择,使用.pop方法。

newDict = {
    'Jan':31, 'Feb':29, 'Mar':31, 'Apr':30, 
    'May':31, 'Jun':30, 'Jul':31, 'Aug':30
}
t = newDict.items()
while t:
    print '%s %d' % t.pop()

典型输出

Jul 31
Jun 30
Apr 30
Aug 30
Feb 29
Mar 31
May 31
Jan 31

此代码不会修改newDict的内容,因为在Python 2中dict.items()会创建字典的(键,值)对的列表。在Python 3中,它返回一个动态View对象,它没有.pop方法,所以这段代码不能在那里工作。

请记住,dict是一个无序集合,因此输出顺序可能不是您所期望的。

答案 2 :(得分:0)

使用以下代码:

key=list(newDict.keys())
i=0
while i<len(key):
    print(key[i]," ",newDict[key[i]])
    i+=1

答案 3 :(得分:0)

您可以使用while循环执行此操作。

newDict = {'Jan':31, 'Feb':29, 'Mar':31, 'Apr':30, 'May':31, 'Jun':30, 'Jul':31, 'Aug':30}
i = 0
while i < len(newDict):
    val = newDict.items()[i]
    print val[0], val[1]
    i += 1

答案 4 :(得分:0)

这是一个荒谬的要求,但这是一种方法:

newDict = {'Jan':31, 'Feb':29, 'Mar':31, 'Apr':30, 'May':31, 'Jun':30, 'Jul':31, 'Aug':30}

while newDict:
  x = next(x for x in newDict)
  print(x, newDict.pop(x))

<强>注意:

while执行完毕后,newDIct 为空

答案 5 :(得分:0)

您可以使用iterator

Python 2.7

new_dict = {'Jan':31, 'Feb':29, 'Mar':31, 'Apr':30, 'May':31, 'Jun':30, 'Jul':31, 'Aug':30}
a = iter(new_dict.iteritems())
default = object()

while a:
    elem = next(a, default)
    # This check is to know whether iterator is exhausted or not.
    if elem is default:
        break
    print "{} {}".format(*elem)

Python 3

new_dict = {'Jan':31, 'Feb':29, 'Mar':31, 'Apr':30, 'May':31, 'Jun':30, 'Jul':31, 'Aug':30}
a = iter(new_dict.items())
default = object()

while a:
    elem = next(a, default)
    # This check is to know whether iterator is exhausted or not.
    if elem is default:
        break
    print("{} {}".format(*elem))