请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么会输出这个结果?

def city_temp(**para):
    for c in para:
        print(c)


city_temp(bj="32c", xm="23c", sh="31c")

课程里的输出结果是:

bj
xm
sh

好奇怪,为什么会出现这种结果?

c不是相当于是字典里的数据了吗,为什么不会把key和value一起输出呢?

当直接打印全部字典的时候,明明key和value都一起出现了的啊,比如:

def city_temp(**para):
    print(para)


city_temp(bj="32c", xm="23c", sh="31c")

输出结果就是:

{'bj': '32c', 'xm': '23c', 'sh': '31c'}

我知道肯定不该这么理解,但我的这种思考方式是哪个地方出现的问题呢?

提前谢谢七月老师解答。:)

正在回答 回答被采纳积分+3

2回答

慕Lynn 2017-11-24 08:57:04

因为单纯遍历para只会遍历key,如果两个都要打出来,需要for key,value in para.items()

0 回复 有任何疑惑可以回复我~
  • 提问者 颜sir #1
    字典应该是没有顺序的吧,那我在遍历的时候,是按照什么逻辑在遍历的呢?
    而且,为什么用简单的遍历方法去遍历时,只能读取到key值而无法读取到value值?
    python的作者这么设计的目的是什么?
    谢谢你的热心解答
    回复 有任何疑惑可以回复我~ 2017-11-24 09:48:03
  • 慕Lynn #2
    我是这么认为的。第一个问题没有逻辑随机遍历的,因此每次遍历顺序都不一样的;第二个问题,直接遍历只能遍历访问的key,而不能看到value的,举个例子,你可以理解value为字典的注释,单纯从目录遍历字典,只能看到先key字,而不能看到注释value,需要再做才操作才能看到value对吧,另一个理解角度是,key和value是两个值,所以也要用两个值对应承接,
    回复 有任何疑惑可以回复我~ 2017-11-24 10:01:24
慕Lynn 2017-11-24 08:57:04

因为单纯遍历para只会遍历key,如果两个都要打出来,需要for key,value in para.items()

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信