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

标签 python list

我想使用格式函数打印 2 个这样的列表:

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)))

最佳答案

.index() 在列表中查找值并返回列表中该值的第一个索引。如果它在列表中找不到该值,它会引发一个 ValueError 指示它找不到该值 - 例如:内容中没有 0你的名单。我有一种感觉,您将它与 planets[i] 混淆了,后者将从列表中获取第 n 个索引。

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

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

在这种情况下,您可以避免 .format,因为它无论如何都不匹配您所需的输出:)


给定:

data = [1, 7, 5]

data 中第 3 项的值是多少?

print(data[2])
# 5

列表中第一个7的索引位置是多少?

print(data.index(7))
# 1

第2个位置的列表值是多少?

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

关于python - 使用 .index() 时尝试访问列表的第 n 个元素会出现 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26590004/

相关文章:

python - 重复二维 NumPy 数组 N 次

Python if、elif、else 当 if 不为 true 时出现问题跳过

python - 从列表中提取 raw_input 选项

java - 从循环添加到多维数组

java - 检查列表是否是 HashMap 中的值

python - 将 numpy 数组列表保存到磁盘上

Python 和 Netbios

python - 如何使用selenium调用angular函数(ng-click)

python - 从字符串中随机选择

python : how to append new elements in a list of list?