我想打印出列表中的一些项目,但我想跳过几个项目,继续处理其余项目。
这是我的代码以及迄今为止我是如何做到这一点的一个例子。
mylist = ["dog","cat","lion","wolf","zebra","monkey","bear","eagle", "bison"]
for item in mylist:
if item == mylist[4]:
continue
if item == mylist[5]:
continue
if item == mylist[6]:
continue
print(item)
如何在不使用多个if语句的情况下执行相同的操作?
您可以使用带索引的for循环(使用索引来检索元素(。
mylist = ["dog", "cat", "lion", "wolf", "zebra", "monkey", "bear", "eagle", "bison"]
for i in range(len(mylist)):
if i in [4, 5, 6]: # element indices to skip
continue
print(mylist[i]) # procedures desired
另一种方法是修改for循环范围,这样可以节省两行代码来执行if
。(这是一个相对糟糕的主意(
mylist = ["dog", "cat", "lion", "wolf", "zebra", "monkey", "bear", "eagle", "bison"]
for i in (mylist[:4]+mylist[7:]): # exclude the skipped ones
print(mylist[i]) # procedures desired
您可以使用list comprehension
并通过使用它们的索引来删除不需要的元素。
mylist = ["dog", "cat", "lion", "wolf", "zebra", "monkey", "bear", "eagle", "bison"]
out = [elem for i, elem in enumerate(mylist) if i not in [4, 5, 6]]
print(out)
输出:
['dog', 'cat', 'lion', 'wolf', 'eagle', 'bison']
您可以使用切片来获取列表的特定索引。试试这个:
for i in mylist[4:]:
print(i)
这将打印第4个索引之后的所有项目。您也可以尝试:
for i in mylist[4:7]:
print(i)
这将打印所有索引4、5和6
这只是解决问题的另一种方法:
mylist = ["dog","cat","lion","wolf","zebra","monkey","bear","eagle", "bison"]
banned=[mylist[4],mylist[5],mylist[6]]
#remove all the items that you don't want before printing
for thing in banned:
mylist.remove(thing)
#print every element in mylist now:
for animal in mylist:
print (animal)
有多种方法可以做到这一点,其中之一就是我在下面写的:
mylist = ["dog","cat","lion","wolf","zebra","monkey","bear","eagle", "bison"]
skip_list = [my_list[4],my_list[5],my_list[6]]
for item in mylist:
if item in skip_list:
continue
print(item)
在这里,您只需要对要跳过的项目进行skip_list
。
我不确定是要跳过特定位置上的元素,还是要跳过具有特定内容的元素。对于前者,您可以尝试列表理解,
if item in [mylist[i] for i in [4,5,6]]:
continue
对于后者,您可以将元素放在一个列表中,
if item in ["zebra","monkey","bear"]:
continue
这可能是一个解决方案:
mylist = ["dog", "cat", "lion", "wolf", "zebra", "monkey", "bear", "eagle", "bison"]
banned = [mylist[1], mylist[5], mylist[6]]
for item in mylist:
if item in banned:
continue
else:
print(item)
以下是执行相同的另一种方法
>>> mylist = ["dog","cat","lion","wolf","zebra","monkey","bear","eagle", "bison"]
>>> del mylist[4:6]
>>> mylist
['dog', 'cat', 'lion', 'wolf', 'bear', 'eagle', 'bison']