如何在python的for循环内使用len(dictionary)?

时间:2018-10-09 10:01:02

标签: python for-loop

我在python中有一个代码段,我尝试运行它,但是我无法理解所生成的输出。这是我的代码:

s = {"chris" :["1", "22", "333", "4444"] }

第一个For循环及其输出:

for i in range(len(s["chris"])):                     #10
      print(s["chris"][i])

Output: 
1
22
333
4444

第二个For循环及其输出:

for i in range (len(s["chris"])):                    #7
      print(len(s["chris"][i]))

Output:
1
2
3
4

如果有人可以帮助我理解for循环代码并帮助我理解所产生的输出,那将是一个很大的帮助。谢谢。

3 个答案:

答案 0 :(得分:1)

说明:

第一个示例:

  • 反复遍历字典的chris键的范围(range0parameter - 1的迭代器)

  • 然后使用该索引在字典的chris键中获取值

第二个示例:

  • 与第一个示例相同,只是长度有所增加,因此'1'的长度为1,而'22'的长度为2,依此类推

答案 1 :(得分:1)

您有一个dictionary s,并且"chris"是指向列表["1", "22", "333", "4444"]的键。因此,调用s["chris"]会给您列表["1", "22", "333", "4444"],而s["chris"][i]对于i = 0,... 3会给您列表的元素,即s["chris"][0] = "1",{ {1}},等等。其余的应该弄清楚自己。

让我补充一下,第一个循环等效于

s["chris"][1] = "22"

和第二个循环

for val in s["chris"]:             
      print(val)

答案 2 :(得分:1)

当您使用for i in range(some integer)时,循环会将i从0迭代到那个some integer - 1 例如,以下代码将给出0 1 2 3 4作为输出

for i in range(5):
    print (i)

在第一个for循环中,您将i迭代到列表"chris"的长度4,然后在i th列表中打印"chris"元素。因此得到第一个输出

在第二个循环中,循环条件是相同的,但是您在其中打印了i th列表的"chris"元素的长度,即1 2 3 4,这是您在第二个循环中的输出。

希望你能理解