【问题标题】:Use the resultant list of a while loop as a condition for the loop itself使用 while 循环的结果列表作为循环本身的条件
【发布时间】:2014-11-10 02:32:26
【问题描述】:

所以可以说我有一个定义的函数

def function(x):
    list1 = []
    while list1[-1] < x:
       ... (loop will generate a list of ints)
    return list1

while 循环将生成一个整数列表,我希望 while 循环一直运行到正在生成的列表的最后一个元素是

我尝试了类似while list1[-1] &lt; x 的方法,但显然它在第一个周期返回错误,因为列表一开始是空的并且索引超出范围。

【问题讨论】:

  • @RobertMoskal 不完全是。再看看他在问什么。
  • @sapcing 你能定义 * 列表的最后一个元素是 * qhile 你的列表最初是空的吗。
  • 这会引发 IndexError,因为您正在尝试获取空列表的最后一个。我相信你需要的是一个递归函数。
  • 不能以列表开头吗?

标签: python list function for-loop


【解决方案1】:

如果列表为空,只需在循环开始时添加一个条件:

import random
def function(x):
    list1 = []
    while len(list1) == 0 or list1[-1] < x:
        list1.append(random.randint(0,100))
    return list1

print function(100)

[76, 36, 75, 97, 10, 14, 33, 28, 20, 29, 61, 60, 79, 53, 76, 28, 100]

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 2014-12-05
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2015-03-02
    • 2020-03-11
    • 2018-06-29
    相关资源
    最近更新 更多