【问题标题】:Why Has The Last Key:Value Pair Printed Twice? [closed]为什么最后一个键:值对打印了两次? [关闭]
【发布时间】:2021-03-03 13:25:50
【问题描述】:

当我使用 for 循环时,为什么最后一个 key:value 对打印了两次?

def values_that_are_keys(my_dictionary):
 for pair in my_dictionary.items():
  print(pair)
 return pair



print(values_that_are_keys({1:100, 2:1, 3:4, 4:10}))

(1, 100)
(2, 1)
(3, 4)
(4, 10)
(4, 10)

【问题讨论】:

  • 你用过return..所以它会给你一个额外的
  • 您有多少个print 语句?你希望每个人输出什么,为什么?
  • 因为我有 2 个打印语句,为什么没有打印两次?
  • 因为不是所有的都被返回,所以只有最后一个值是。

标签: python dictionary for-loop


【解决方案1】:

因为您在末尾有 return 语句,它返回最后一对并且被额外打印:

return pair  # remove this

并调用values_that_are_keys({1:100, 2:1, 3:4, 4:10})

【讨论】:

  • 为什么只打印最后一对?
  • 因为您在最后有 return 语句,它在打印循环中的所有元素后再次返回最后一对并且被额外打印,所以删除 return 语句
  • 好的,谢谢。还有最后一件事,因为我有 2 个打印语句,为什么没有打印两次?
  • 因为您只返回循环外的最后一对,并且只打印出来。其他值在循环中打印,然后在退出循环后返回最后一个值,因此只打印最后一个值。如果你将 return 移到循环内,那么你只会看到第一个值被打印两次,因为在 return 之后循环不再执行。
猜你喜欢
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 2021-01-19
  • 1970-01-01
相关资源
最近更新 更多