我正在编写一个公路交通模型。在决定前车之间的距离时,我被困在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,这样我就可以在下一个代码中使用它
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
的汽车中,你有一辆最小的汽车。在相关问题 更多 >
编程相关推荐