列表
1、列表的概念和定义
列表由一系列按特定顺序排列的元素组成。可以将任何类型的元素加入列表中(类型可以不相同),其中元素之间可以没有任何关系。所创建的大多数列表都将是动态的,将随着程序的运行增删元素。
在Python中,用方括号([ ])来表示列表,并用逗号来分隔其中的元素。
languages = ['C', 'C++', 'Java', 'Python']
在Python中,对于一个含有n个元素的列表,列表元素的索引是从0到(n-1)(例如访问第一个列表元素用索引0,访问第四个列表元素用索引3等等)。超出这个范围会导致索引错误(IndexError)。
特别的,可以用索引-1指定最后一个列表元素,用索引-2指定倒数第二个列表元素,以此类推。
列表中的元素可以当作普通变量来执行各种方法和操作。
languages = ['C', 'C++', 'Java', 'Python'] message = "I learned " + languages[0].lower() + " language first." print(message)
2、打印整个列表或列表中的元素
languages = ['C', 'C++', 'Java', 'Python'] print(languages) print(languages[0]) print(languages[3]) print(languages[3].upper())
输出为:
['C', 'C++', 'Java', 'Python'] C Python PYTHON
#注意:打印整个列表时,Python将打印列表的内部表示,包括方括号、逗号和单引号。
操作列表元素
1、修改元素
采用重新赋值的方式直接修改列表中的元素。
languages = ['C', 'C++', 'Java', 'Python'] languages[3] = 'C#' print(languages)
输出为:
['C', 'C++', 'Java', 'C#']
2、添加元素
(1).append( '要添加的元素' ):在列表末尾添加元素
languages = ['C', 'C++', 'Java', 'Python'] languages.append('Go') print(languages)
输出为:
['C', 'C++', 'Java', 'Python', 'Go']
(2).insert( 插入位置索引, '要插入的元素' ):在列表中(任意位置,包括开头和结尾)插入元素
languages = ['C', 'C++', 'Java', 'Python'] languages.insert(0, 'A') print(languages) languages = ['C', 'C++', 'Java', 'Python'] languages.insert(2, 'OC') print(languages) languages = ['C', 'C++', 'Java', 'Python'] languages.insert(4, 'Matlab') print(languages)
输出为:
['A', 'C', 'C++', 'Java', 'Python']
['C', 'C++', 'OC', 'Java', 'Python']
['C', 'C++', 'Java', 'Python', 'Matlab']
3、删除元素
(1)del语句:可删除任何位置的列表元素,条件是知道其索引。
languages = ['C', 'C++', 'Java', 'Python'] del languages[1] print(languages)
输出为:
['C', 'Java', 'Python']
(2).pop():删除列表末尾的元素,并让你能够继续使用它(也被叫做“弹出”)。
.pop( 要删除元素的索引 ):删除任何位置的元素,并让你能够继续使用它(特别的,当索引为0/-1时,可删除开头/末尾的元素)。
languages = ['C', 'C++', 'Java', 'Python'] popped_languages = languages.pop() print(languages) print(popped_languages) languages = ['C', 'C++', 'Java', 'Python'] popped_languages = languages.pop(1) print(languages) print(popped_languages)
输出为:
['C', 'C++', 'Java'] Python ['C', 'Java', 'Python'] C++
(3).remove( '要删除的元素的值' ):当不知道要删除的元素的索引,而知道这个元素的值时使用。
languages = ['C', 'C++', 'Java', 'Python'] languages.remove('Java') print(languages)
输出为:
['C', 'C++', 'Python']
#注意:.remove()只能删除第一个指定的值,如果要删除的值在列表中可能出现多次,就要使用循环来判断是否删除了所有这样的值。
列表排序、测量长度
1、列表排序
(1).sort():按字母从小到大(也叫做按字母顺序排列),永久性修改列表元素的排列顺序(无法恢复成原来的顺序)。
.sort( reverse = True ):按字母从大到小,永久性修改列表元素的排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() print(cars) cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort(reverse = True) print(cars)
输出为:
['audi', 'bmw', 'subaru', 'toyota'] ['toyota', 'subaru', 'bmw', 'audi']
(2).sorted():对列表进行临时排序,保留列表元素原来的排列顺序,同时以特定的顺序呈现它们(字母顺序排列)。
.sorted( reverse = True ):按与字母顺序相反的顺序进行临时排列。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(sorted(cars)) print(cars)
输出为:
['audi', 'bmw', 'subaru', 'toyota'] ['bmw', 'audi', 'toyota', 'subaru']
(3).reverse():永久性地反转列表元素的排列顺序。可通过再次调用.reverse()恢复成原来的排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.reverse() print(cars) cars.reverse() print(cars)
输出为:
['subaru', 'toyota', 'audi', 'bmw'] ['bmw', 'audi', 'toyota', 'subaru']
2、确定列表长度/列表元素个数
使用len函数可快速获悉列表的长度。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(len(cars)) #输出为4
参考书籍:《Python编程:从入门到实践》
2020-07-06