为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

桃花长相依 2022-09-27 10:52:12
所以我需要一个程序,它将获取列表中的一个项目,并打印该列表中除初始项目之外的所有其他项目。例如,如果我有一个列表,例如: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)有人有任何意见吗?
查看完整描述

4 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用:


for i, _ in enumerate(ls):

    print(*[e for j, e in enumerate(ls) if i != j])

输出:


Earth Mars Venus

Sun Mars Venus

Sun Earth Venus

Sun Earth Mars


查看完整回答
反对 回复 2022-09-27
?
守候你守候我

TA贡献1802条经验 获得超10个赞

所以我听了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')

感谢前任和夸姆拉纳在这里帮助我。


查看完整回答
反对 回复 2022-09-27
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我觉得就像


ls = ['sun','earth','mars','venus'];

a = 'earth';

for i in range (len(ls)):

    if ls[i] != a:

        print(ls[i]);

其中a是你不想显示的行星,因为我不记得如何在python lol中输入值。


len()函数返回数组的长度,非常有用,我希望它能帮助你


查看完整回答
反对 回复 2022-09-27
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

# these work if no duplicates in list

for 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 duplicates

for 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:])


查看完整回答
反对 回复 2022-09-27
  • 4 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信