如何在python中的for循环中使用len(字典)?

如何在python中的for循环中使用len(字典)?,python,for-loop,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 i in range (len(s["chris"])):

我有一个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 i in range (len(s["chris"])):                    #7
      print(len(s["chris"][i]))

Output:
1
2
3
4
第二个For循环及其输出:

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

Output: 
1
22
333
4444
for i in range (len(s["chris"])):                    #7
      print(len(s["chris"][i]))

Output:
1
2
3
4

如果有人能帮助我理解for循环代码,也能帮助我理解数据和生成的输出,那将是一个很大的帮助。谢谢。

解释:

第一个例子:

  • 通过字典的
    chris
    键的范围进行迭代(
    range
    迭代器从
    0
    参数-1

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

第二个例子:

  • 与第一个示例相同,但只是得到长度,
    '1'
    的长度是1,
    '22'
    的长度是2,依此类推

    • 解释:

      第一个例子:

      • 通过字典的
        chris
        键的范围进行迭代(
        range
        迭代器从
        0
        参数-1

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

      第二个例子:

      • 与第一个示例相同,但只是得到长度,
        '1'
        的长度是1,
        '22'
        的长度是2,依此类推
      您有一个
      s
      “chris”
      是指向列表的键
      [“1”、“22”、“333”、“4444”]
      。因此,调用
      s[“chris”]
      将为您提供列表
      [“1”、“22”、“333”、“4444”]
      ,而
      s[“chris”][i]
      ,对于i=0。。。3,为您提供此列表的元素,即
      s[“chris”][0]=“1”
      s[“chris”][1]=“22”
      ,等等。其余部分您应该自己解决

      让我补充一下,第一个循环相当于

      for val in s["chris"]:             
            print(val)
      
      第二个循环是

      for val in s["chris"]:             
            print(len(val))
      
      您有一个
      s
      “chris”
      是指向列表的键
      [“1”、“22”、“333”、“4444”]
      。因此,调用
      s[“chris”]
      将为您提供列表
      [“1”、“22”、“333”、“4444”]
      ,而
      s[“chris”][i]
      ,对于i=0。。。3,为您提供此列表的元素,即
      s[“chris”][0]=“1”
      s[“chris”][1]=“22”
      ,等等。其余部分您应该自己解决

      让我补充一下,第一个循环相当于

      for val in s["chris"]:             
            print(val)
      
      第二个循环是

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

      当您对范围内的i(某个整数)使用
      循环将i从0迭代到该
      某个整数-1
      例如,以下代码将
      0 1 2 3 4
      作为输出

      for i in range(5):
          print (i)
      
      在第一个for循环中,您迭代
      i
      直到4,这是列表
      “chris”
      的长度,并且您正在打印
      “chris”
      列表中的
      i th
      元素。因此,您得到了第一个输出

      在第二个循环中,循环条件是相同的,但是在这里您可以打印
      “chris”
      列表的
      i th
      元素的长度,即1 2 3 4,这是您在第二个循环中的输出


      希望您能理解

      当您对范围内的i(某个整数)使用
      循环将i从0迭代到该
      某个整数-1
      例如,以下代码将
      0 1 2 3 4
      作为输出

      for i in range(5):
          print (i)
      
      在第一个for循环中,您迭代
      i
      直到4,这是列表
      “chris”
      的长度,并且您正在打印
      “chris”
      列表中的
      i th
      元素。因此,您得到了第一个输出

      在第二个循环中,循环条件是相同的,但是在这里您可以打印
      “chris”
      列表的
      i th
      元素的长度,即1 2 3 4,这是您在第二个循环中的输出



      希望您能理解

      这不是很直观吗?您知道
      范围
      len
      是做什么的吗?如果没有,您是否尝试过阅读文档?第一个循环一个接一个地输出列表的内容(以一种非常不和谐、奇怪的方式),第二个循环输出列表中每个字符串的长度-但是,同样,没有人会这样做。这是你应该学习的一个例子吗?在Python shell中玩一玩,看看
      s[“chris”]
      产生了什么,
      s[“chris”][0]
      len(s[“chris”])
      列表(范围(len(s[“chris”])
      (比
      范围(…)
      更有用)嘿!谢谢你的回复。我能理解范围和长度。我的问题是理解:print(s[“chris”][i])和print(len(s[“chris”][i])。我不能完全理解为什么我在这两个地方都使用索引。这不是很直观吗?你知道
      range
      len
      做什么吗?如果没有,您是否尝试过阅读文档?第一个循环一个接一个地输出列表的内容(以一种非常不和谐、奇怪的方式),第二个循环输出列表中每个字符串的长度-但是,同样,没有人会这样做。这是你应该学习的一个例子吗?在Python shell中玩一玩,看看
      s[“chris”]
      产生了什么,
      s[“chris”][0]
      len(s[“chris”])
      列表(范围(len(s[“chris”])
      (比
      范围(…)
      更有用)嘿!谢谢你的回复。我能理解范围和长度。我的问题是理解:print(s[“chris”][i])和print(len(s[“chris”][i])。我不能完全理解为什么在这两个地方都使用索引I。为什么
      range
      意味着
      [1,2,3,4]
      ?@DeepSpace编辑的mine仍然不准确,
      range(n)
      返回一个迭代器(Python2中的列表和Python3中的
      range
      对象)现在有了
      0
      n-1
      @DeepSpace?为什么
      range
      意味着
      [1,2,3,4]
      ?@DeepSpace编辑的mine仍然不准确,
      range(n)
      返回一个迭代器(Python 2中的列表和