我想使用格式化功能打印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)))
答案 0 :(得分:6)
.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
第二个位置的列表值是多少?
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