在本节中,我们将了解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']
上面有一个字符串列表,并且使用列表推导将列表项小写。