【问题标题】:Python 3.x for loops and list indexingPython 3.x for 循环和列表索引
【发布时间】:2019-05-09 07:07:21
【问题描述】:

我无法理解这个在 Python 中使用 for 循环的简单问题,这是我在在线测验中找到的。你能帮我理解一下,为什么我们会得到以下输出吗?

some_list = [1,2,3,4,5]

for some_list[1] in some_list:
    print(some_list)
    print(some_list[1])

输出:

[1, 1, 3, 4, 5]
1
[1, 1, 3, 4, 5]
1
[1, 3, 3, 4, 5]
3
[1, 4, 3, 4, 5]
4
[1, 5, 3, 4, 5]
5

我想,它会打印列表的第二个元素和整个列表 5 次。

【问题讨论】:

    标签: python python-3.x for-loop


    【解决方案1】:

    表达式for x in some_list:循环遍历一个列表并将列表的每个值临时存储在x中。

    表达式for some_list[1] in some_list: 循环遍历一个列表并将列表的每个值临时存储在some_list[1] 中。 (循环的每次迭代,列表的下一个值都会覆盖some_list[1]。)

    我想,它会打印列表的第二个元素和整个列表 5 次。

    这就是正在发生的事情,只是列表正在改变(尤其是第二个元素)。

    【讨论】:

    • 这是一个很好的解释。我不明白为什么原始列表中的元素会随着每次打印而不断变化?在循环中读取 x 时,some_list[1] 的值是否会随着温度值更新?
    • @ParvBanks 是的,每次循环提取临时值时,列表中的元素都会发生变化。
    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    相关资源
    最近更新 更多