值错误:min()arg是空序列

2024-09-28 22:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个公路交通模型。在决定前车之间的距离时,我被困在min()上。不知何故,这是一个空洞的序列。在

Traceback (most recent call last):

[93, 72, 55]

File "C:/Users/Try Arie/PycharmProjects/traffic_model/traffic.py", line 44, in

55

[]

d = min(dlist)

ValueError: min() arg is an empty sequence

我检查了距离列表的值。它应该在里面,并且使用min(),我将把最小的值赋给d,但是它没有

class car:

    def __init__(self, no, x, v):
        self.no = no
        self.x = x
        self.v = v


for i in range(N):
    cars.append(car(i+1, randint(0, 100), 0))

for i in range(N):

    dlist = []

    for j in range(N):
        if cars[j].x > cars[i].x:
            dlist.append(cars[j].x)

    print(dlist)

    d = min(dlist)

    print(d)

我想要值d55,这样我就可以在下一个代码中使用它


Tags: noin模型self距离forrangemin
1条回答
网友
1楼 · 发布于 2024-09-28 22:36:08

dlist对于i将为空,cars[i].x的值最大。对于这个i,测试cars[j].x > cars[i].x永远不会是真的,因此您永远不会在dlist中追加任何内容。在

正如您在输出中看到的那样:在i的第一次迭代中,您会发现x大于53:[93, 72, 55]的所有汽车,并且还打印了55。在下一个迭代中,您将发现x大于93的所有汽车。没有这样的汽车,因此得到一个空的dllist [],然后{}引发异常。在

您必须显式地处理empty的特殊情况,或者在测试中使用>=而不是{}。在

顺便说一句,按x对汽车进行分类不是更快/更容易吗?然后在排序后的列表中的位置k处,在所有的汽车中,x大于或等于cars[k].x的汽车中,你有一辆最小的汽车。在

相关问题 更多 >