繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM