我想使用格式函数打印 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/