中间切片的Pythonic方法

2024-09-30 20:28:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个练习,要求我将列表中间的三个项目切分。我可以用一些东西,例如

    foods = ['pizza', 'salad', 'pasta', 'poison', 'meat', 'cake', 'chocolate']
    #slicing the middle three items in the list
    middle_foods = len(foods[:]) / 2
    middle_foods = int(middle_foods)
    middle_item = middle_foods + 1
    middle_item2 = middle_foods - 1
    
    print("The Three items from the middle of the list are:\n",
          foods[int(middle_item2)], foods[int(middle_foods)], foods[int(middle_item)]
          )

然而,这是冗长和丑陋的。有没有更好的方法用切片来写这个


Tags: the项目middle列表itemsitemlistint
2条回答

你的想法是对的,不过你可以稍微清理一下:

midx = len(foods) // 2
print(*foods[midx-1:midx+2])

您使用的是index,而不是slice。试试这个:

foods = ['pizza', 'salad', 'pasta', 'poison', 'meat', 'cake', 'chocolate']
mid = len(foods)//2
foods[mid-1:mid+2] # this is slice

相关问题 更多 >