如何创建一个循环来打印列表中的所有其他条目?

所以我需要一个程序,它将获取列表中的一个项目,并打印该列表中除初始项目之外的所有其他项目。


例如,如果我有一个列表,例如:


ls = ['Sun','Earth','Mars','Venus']

当选择“太阳”时,将打印“地球”,“火星”和“金星”,然后程序将移动到“地球”上打印“太阳”,“火星”等...


我认为这可以用for循环来完成,但我无法找到一种方法来使它工作。


编辑:忘记添加我尝试过的内容,这里是:


bodies = ['Sun','Earth','Mars','Venus']


for i in (bodies):

    bodies.remove(i)

    for j in bodies:

        print(j)

    print('\n')

    bodies.append(i)


print(bodies)

有人有任何意见吗?


桃花长相依
浏览 111回答 4
4回答

素胚勾勒不出你

您可以使用:for i, _ in enumerate(ls):    print(*[e for j, e in enumerate(ls) if i != j])输出:Earth Mars VenusSun Mars VenusSun Earth VenusSun Earth Mars

守候你守候我

所以我听了quamrana的帖子,他说编辑我正在迭代的集合是一件坏事,所以我使用了for循环的组合加上exe的一些答案,并提出了这个:ls = ['Sun','Earth','Mars','Venus']for planet in ls:    print('Current: ' + repr(planet))    for i in ls:        if i not in planet:            print(i)    print('\n')感谢前任和夸姆拉纳在这里帮助我。

芜湖不芜

我觉得就像ls = ['sun','earth','mars','venus'];a = 'earth';for i in range (len(ls)):    if ls[i] != a:        print(ls[i]);其中a是你不想显示的行星,因为我不记得如何在python lol中输入值。len()函数返回数组的长度,非常有用,我希望它能帮助你

慕姐4208626

# these work if no duplicates in listfor item in lst:    print(set(lst) - set([item])for item in lst:    print([I for I in lst if I != item])# this works if potential duplicatesfor idx, item in enumerate(lst):    if idx == 0:        print(lst[1:])    elif idx == len(lst) - 1:        print(lst[:-1])    else:        print(lst[0:idx] + lst[idx + 1:])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python