如何使用整数迭代列表中索引的值

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,而不迭代索引的值(更改打印的数据)。


慕哥6287543
浏览 145回答 2
2回答

慕侠2389804

你的迭代有点不正确。用: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_listdef 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 拥有最好的代码,所以我会选择他的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python