![](/img/trans.png)
[英]how to iterate a list consisting of long integer value using python?
[英]How to iterate the value of an index in a list using an integer
class Planet:
def __init__(self, name, radius, system, gravity):
self.name=name
self.radius=radius
self.gravity=gravity
self.system=system
def orbit(self):
return(f'{self.name} is orbiting in the {name} system')
planet_list=[]
while True:
name = input('Enter the Planet\'s name: \n')
radius = int(input('Enter the Planet\'s radius: \n'))
gravity = int(input('Enter the Planet\'s gravity: \n'))
system = input('Enter the Planet\'s system: \n')
sub_list=[name,radius,gravity,system]
planet_list.append(sub_list)
again=input('\nAdd another planet? (Y/N): ')
if again.startswith('y') or again.startswith('Y'):
continue
elif again.startswith('n') or again.startswith('N'):
break
else:
print('I didn\'t quite catch that...')
continue
def planet_intro(dictionary):
for world in planet_list:
i=0
print(f'\nPlanet: {planet_list[i][0]}\nRadius: {planet_list[i][1]}\nGravity: {planet_list[i][2]}\nSystem: {planet_list[i][3]}\n')
i+=1
planet_intro(planet_list)
我已經有一段時間了,但是由於某種原因,我無法聲明整數並將該變量用作索引的值。 我今天剛進入Java,所以這可能是一個非常簡單的解決方案,已經超出了我的腦海,但是我還沒有弄清楚。
因此,如果我運行此命令,則無論planet_list
中有多少列表,它都會重復相同的數據,而不會迭代索引的值(更改打印的數據)。
您的迭代有點不正確。
采用:
def planet_intro(planet_list):
for world in planet_list:
print(f'\nPlanet: {world[0]}\nRadius: {world[1]}\nGravity: {world[2]}\nSystem: {world[3]}\n')
您的打印語句相同的原因是,您需要將i=0
置於循環外部(每次循環時,您都將i
重置為0
)。 另外,您應該將planet_list
作為輸入
def planet_intro(planet_list):
i=0
for world in planet_list:
print(f'\nPlanet: {planet_list[i][0]}\nRadius: {planet_list[i][1]}\nGravity: {planet_list[i][2]}\nSystem: {planet_list[i][3]}\n')
i+=1
您還可以使用enumerate遍歷列表中的項目並獲得索引。 您的代碼如下:
def planet_intro(planet_list):
for i, world in enumerate(planet_list):
print(f'\nPlanet: {planet_list[i][0]}\nRadius: {planet_list[i][1]}\nGravity: {planet_list[i][2]}\nSystem: {planet_list[i][3]}\n')
但是我仍然認為Rakesh具有最好的代碼,所以我會選擇他。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.