尝试访问列表的第n个元素会在使用.index()时出现ValueError

2024-09-26 22:53:09 发布

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

我想用format函数打印两个这样的列表:

Planet | Distance from Sun
Mercury | 0.4 AU
Venus | 0.7 AU
Earth | 1.0 AU
Mars | 1.5 AU
Jupiter | 5.2 AU
Saturn | 9.5 AU
Uranus | 19.6 AU
Neptune | 30.0 AU

代码如下:

planets = ["Planet", "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
distance = ["Distence from Sun", "0.4", "0.7", "1.0", "1.5", "5.2", "9.5", "19.6", "30.0"]

for i in range(len(planets)):
    print("{}|{}".format(planets.index(i), distance.index(i)))

Tags: fromformatdistanceausunneptunejupitermars
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:09

{}并返回列表中的第一个值。如果它在列表中找不到该值,它将引发一个ValueError指示它找不到该值-例如:在列表的内容中没有0。我感觉你把它和planets[i]混淆了,后者将从列表中得到第n个索引。你知道吗

然而,一个更简单的方法是“组合”两个列表,并打印它们的结果-您不需要保留迭代内容的索引,只需迭代它们,例如:

for p, d in zip(planets, distance):
    print(p, '|', d)

在这种情况下,您可以避免使用.format,因为它与所需的输出不匹配:)


给出:

data = [1, 7, 5]

data中第三项的值是多少?你知道吗

print(data[2])
# 5

列表中第一个7的索引位置是什么?你知道吗

print(data.index(7))
# 1

第二个位置的列表值是多少?你知道吗

print(data[1])
# 7

列表中第一个100的位置是什么?你知道吗

print(data.index(100))
# Traceback (most recent call last):
#   File "<pyshell#8>", line 1, in <module>
#     data.index(100)
# ValueError: 100 is not in list

相关问题 更多 >

    热门问题