ValueError: min() arg is an empty sequence
ValueError: min() arg is an empty sequence
我目前正在编写高速公路交通模型。在决定前车之间的距离时,我被困在 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)
我想要值 d 55,这样我就可以将它用于我的下一个代码
dlist
将为 cars[i].x
具有最大值的 i
清空。对于此 i
,测试 cars[j].x > cars[i].x
永远不会为真,因此您永远不会将任何内容附加到 dlist
.
正如您在输出中看到的那样,确实发生了这种情况:在 i
的第一次迭代中,您发现所有 x
大于 53 的汽车:[93, 72, 55]
并且您还打印55. 在下一次迭代中,您会发现 x
大于 93 的所有汽车。没有这样的汽车,因此您会得到一个空的 dllist []
,然后 min
引发异常。
您要么必须明确处理 empty 的特殊情况,要么在测试中使用 >=
而不是 >
。
顺便说一句,按 x
对汽车进行排序不是 faster/easier 吗?然后在排序列表中的 k
位置,在 x
大于或等于 cars[k].x
.
的所有汽车中,您拥有最小的汽车
我目前正在编写高速公路交通模型。在决定前车之间的距离时,我被困在 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)
我想要值 d 55,这样我就可以将它用于我的下一个代码
dlist
将为 cars[i].x
具有最大值的 i
清空。对于此 i
,测试 cars[j].x > cars[i].x
永远不会为真,因此您永远不会将任何内容附加到 dlist
.
正如您在输出中看到的那样,确实发生了这种情况:在 i
的第一次迭代中,您发现所有 x
大于 53 的汽车:[93, 72, 55]
并且您还打印55. 在下一次迭代中,您会发现 x
大于 93 的所有汽车。没有这样的汽车,因此您会得到一个空的 dllist []
,然后 min
引发异常。
您要么必须明确处理 empty 的特殊情况,要么在测试中使用 >=
而不是 >
。
顺便说一句,按 x
对汽车进行排序不是 faster/easier 吗?然后在排序列表中的 k
位置,在 x
大于或等于 cars[k].x
.