【问题标题】:How do I go to the next value in a list using a for loop? [duplicate]如何使用 for 循环转到列表中的下一个值? [复制]
【发布时间】:2019-09-01 18:37:52
【问题描述】:

我希望当前为 [0] 的列表在每次循环重复时增加 1。

card_number = ['A','2','3','4','5','6','7','8','9','10']

for i in range(10):
    print(card_number[0])

我希望它打印我列表中的每个字符串 - 例如:A, 2 ,3 , 4...

【问题讨论】:

  • print(card_number[0])改成print(card_number[i])?
  • print(card_number[i]) 代替。
  • 即使对于python初学者来说,这也不是问题,范围的使用相当令人费解,OP从未声明过。

标签: python list loops


【解决方案1】:

提示:你不应该使用 10,你应该使用 range(len(card_number))

但我更喜欢这种模式

card_number = ['A','2','3','4','5','6','7','8','9','10']

for c in card_number:
    print(c)

【讨论】:

    【解决方案2】:

    调试

    for i in range(10):
        print(card_number[0])  # notice this line
    

    它会打印0th 元素,即10 次列表中的A,当然不是您想要的。

    因此

    使用计数器变量i代替索引值0

    card_number = ['A','2','3','4','5','6','7','8','9','10']
    
    for i in range(len(card_number)):  # Use len(card_number) instead to avoid accidents
        print(card_number[i], end = " ")
    

    建议(单行):

    使用in 运算符,适用于列表中的每个元素。

    print(', '.join([elem for elem in card_number]))
    

    输出

    A, 2, 3, 4, 5, 6, 7, 8, 9, 10
    

    【讨论】:

    • print(', '.join(str(elem) for elem in card_number)) 应该够了
    • @Netwave 确实,只是想在建议的修复之前展示一个可能的修复。
    • 我的意思是不需要中间列表
    【解决方案3】:

    在列表本身上使用in 运算符,python 会自动为您迭代列表。

    card_number = ['A','2','3','4','5','6','7','8','9','10']
    
    for i in card_number:
        print(i)
    

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 2020-08-02
      • 2022-01-06
      • 2015-01-13
      • 2021-08-27
      • 1970-01-01
      • 2012-09-08
      • 2020-02-21
      相关资源
      最近更新 更多