Python列表理解和切片?

在本节中,我们将了解python列表切片和列表理解。

什么是列表切片?

顾名思义,切片是指–将某些东西切成小块。列表切片是从原始列表中提取列表的一部分的过程。在列表切片中,我们将根据所需内容(例如,从何处开始,停止以及以何种增量进行切片)剪切列表。

什么是列表理解?

列表理解是基于现有列表生成列表。它提供了一种优雅的方法来基于现有列表定义和创建新列表。

列表切片

当我们要分割列表时,首先让我们创建一个列表-

>>> mylist = ["Which ", "Language ", "To ", "Choose ", "Difficult, ", "Python ",
   "Java ", "Kotlin ", "Many more"]

列表可以向后索引,从-1(最后一个元素)开始,并以-1递增。因此,-1是最后一个元素,-2是倒数第二个元素。

>>> mylist_slice1 = mylist[0: -1:2]
>>> mylist_slice1
['Which ', 'To ', 'Difficult, ', 'Java ']

切片列表时,我们必须先调用列表(在本例中为mylist),然后再调用切片要求。这些必须放在方括号[]中。我们可能需要在[]内部传递的参数为-

  • 第一个参数,索引开始切片。

  • 第二个参数,索引停止切片。

  • 第三个参数,分步/递增切片(可选)。

所以最后,这看起来像是-

mylist[START: STOP:STEP]
>>> mylist_slice2 = mylist[1:-1:2]
>>> mylist_slice2
['Language ', 'Choose ', 'Python ', 'Kotlin ']

列表理解

如您现在所知(从上面),列表理解是根据现有列表生成一个新列表。因此,让我们首先创建一个列表(原始列表),我正在使用该range()函数为列表理解生成临时数字列表。

>>> mylist1 = [x for x in range(0, 40)]
>>> mylist1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
    27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
>>>
>>> mylist2 = [x for x in range(0,41) if x%2 == 0]
>>> mylist2
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40]

让我们了解上面发生了什么,我们首先创建一个临时变量名称“ x”,然后创建一个for循环,该循环在方括号内迭代从0到40的范围,当我们执行它时,它将生成一个从0到39的数字列表然后,我们创建另一个列表,并向其中添加条件,条件为“如果x%2 == 0”。这意味着我们只在寻找偶数。

让我们使用字符串创建另一个列表以进行列表理解。

>>> strlist = ["This", "Is", "A" , "List" , "Of", "Strings", "For", "List", "Comprehension"]
>>> print([x.lower() for x in strlist])
['this', 'is', 'a', 'list', 'of', 'strings', 'for', 'list', 'comprehension']

上面有一个字符串列表,并且使用列表推导将列表项小写。