Python3-如何在列表中的第一个和最后10个项目上使用for循环进行迭代?

Python3-如何在列表中的第一个和最后10个项目上使用for循环进行迭代?,python,Python,我有这样一份清单: foo = [1, 2, 3, 4, 5, etc....] 如何迭代此列表中的前10项和后10项 谢谢您可以使用列表切片: for i in foo[:10] + foo[-10:]: print(i) 第一种解决方案的缺点是,如果列表中的元素少于20个但多于10个,则某些元素将迭代两次 为了避免这种情况,稍微复杂一点的版本可以是: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17

我有这样一份清单:

foo = [1, 2, 3, 4, 5, etc....]
如何迭代此列表中的前10项和后10项


谢谢

您可以使用列表切片:

for i in foo[:10] + foo[-10:]:
    print(i)
第一种解决方案的缺点是,如果列表中的元素少于20个但多于10个,则某些元素将迭代两次


为了避免这种情况,稍微复杂一点的版本可以是:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
for i in lst[:10] + [x for x in lst[-10:] if x not in lst[:10]]:
    print(i)

可以附加列表的两个子集,一个包含前10个元素,另一个包含最后10个元素:

for elem in foo[:10] + foo[-10:]:
    # do something
a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
因为我在一个[:10]:
印刷品(一)
对于a[-10:]:
印刷品(一)

您搜索了什么,找到了什么?你尝试了什么,怎么失败的?如果列表中的项目少于20个怎么办?如果少于10个呢?谢谢大家。我使用了这段代码,并为脚本添加了一个检查逻辑来打印两次相同的内容:a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]checked=[]a[:10]中I的print(“前10”):如果I in checked:继续打印(I)checked。a[-10:]中I的append(I)print(-----\nlast 10)]:如果我已签入:继续打印(i)已签入。追加(i)