Python无序类型:str()<int()

2024-09-30 00:37:35 发布

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

我有一个代码片段,它返回列表中最小整数的索引

for x in range(0,len(points)):
    minVal = min(range(len(pathValue)), key=pathValue.__getitem__)
    if visited[x] != "T": visited[minVal]= "T"

访问的点和pathValue都是列表,包含以下内容:

^{pr2}$

但是当我编译程序时,它总是指向这一行的错误

 minVal = min(range(len(pathValue)), key=pathValue.__getitem__)

然后说

Unorderable types: str() < int() 

我的代码怎么了?在


Tags: key代码in列表forlenifrange
1条回答
网友
1楼 · 发布于 2024-09-30 00:37:35

并非pathValue中的所有值都是整数。列表中至少有一个字符串对象。在

如果pathValue中只有整数,则表达式有效:

>>> pathValue = [9, 5, 1, 2, 3, 4]
>>> min(range(len(pathValue)), key=pathValue.__getitem__)
2

但是添加一个字符串,就会得到具体的错误:

^{pr2}$

使绝对确保您的pathValue列表只包含整数。在

请注意,我在这里使用^{} function和a ^{} object,而不是range()和{}:

from operator import itemgetter

minVal = min(enumerate(pathValue), key=itemgetter(1))[0]

当然,如果输入列表中只有整数,这也会检索最小值的索引。在

相关问题 更多 >

    热门问题