文章目录
列表简介
1.1列表及列表索引
-
列表是由一系列按特定顺序排列的元素组成。可以将任何东西加入列表中,其中的元素之间没有任何关系。
-
在Python中,用方括号 [] 表示列表,并用逗号( , )分隔其中的元素
-
Python中,列表元素的索引,从左往右从0开始递增,从右往左则从-1开始递减。
letters = ['a','b','c','d','e','f'] print(letters[0]) print(letters[3]) print(letters[-1]) print(letters[-2]) '''输出结果分别为: a d f e'''
-
使用列表中的值:
bicycles = ['trek','cannondale','redline','specialized'] message = f"My first bicycle was a {bicycles[0].title()}." print(message) '''输出: My first bicycle was a Trek.'''
1.2修改、添加和删除元素
方法 | 描述 |
---|---|
list.append(obj) | 在列表末尾添加新的元素 |
list.extend(seq) | 在列表末尾一次性追加另一序列的多个值。 |
insert(index,obj) | 可以在列表的任意位置添加新的元素 |
del语句:del list[index] | 删除任意位置的元素,事先需要知道所要删除元素的位置 |
pop(index) | 删除任意位置的元素,事先需要知道所要删除元素的位置 |
pop() | 删除列表末尾的元素 |
remove(obj) | 根据值删除元素:不知道所要删除元素的位置,但知道所要删除元素的值。remove()只删除第一个指定的值。如果要删除的值在列表中出现多次,就需要使用循环来确保每个值都被删除。 |
(1)修改列表元素
-
修改列表元素可以通过指定列表名和需要修改的元素的索引,对其赋予一个新的值。
bicycles = ['trek','cannondale','redline'] bicycles[1] = 'specialized' print(bicycles) '''输出结果: ['trek', 'specialized', 'redline']'''
(2)添加列表元素
-
添加到列表末尾:append() 注意与extend()区分
- append()方法用于在列表末尾添加新的元素。
- extend()函数用于在列表末尾一次性追加另一序列的多个值。
-
添加到任何位置:insert(索引,添加的内容)
# 添加到列表末尾:appen() vs. extend() letters = ['a','b','c','d','e'] nums = ['11','22','33','66'] nums.extend(letters) letters.append('F') print(nums) print(letters) '''输出结果: ['11', '22', '33', '66', 'a', 'b', 'c', 'd', 'e'] ['a', 'b', 'c', 'd', 'e', 'F'] ''' # 添加到列表的任意位置:insert() lett = ['a','b','c','d','e','f'] lett.insert(2,'H') print(lett) '''输出结果: ['a', 'b', 'H', 'c', 'd', 'e', 'f']'''
(3)删除列表元素
-
删除任意位置的元素:事先知道所要删除元素的位置
- 使用 del 语句
- pop(索引)
- 注意:使用del 删除元素后,将无法再访问;pop()删除后可以访问
-
删除列表末尾的元素:
- pop()
-
根据值删除元素:不知道所要删除元素的位置,但知道所要删除元素的值
- remove()
- 注意:remove()只删除第一个指定的值。如果要删除的值在列表中出现多次,就需要使用循环来确保每个值都被删除。
# 删除任意位置的列表元素: del语句;pop(索引) letters = ['a','b','c','d','e'] nums = ['1','2','3','4','5'] del letters[1] print(letters) number_3 = nums.pop(2) print(number_3) print(nums) '''输出结果: ['a', 'c', 'd', 'e'] 3 ['1', '2', '4', '5'] ''' # 删除列表末尾元素:pop() nums = ['1','2','3','4','5'] last = nums.pop() print(last) print(nums) '''输出结果: 5 ['1', '2', '3', '4'] ''' # 根据值删除元素:remove() letters = ['a','b','c','d','e'] letters.remove('d') print(letters) '''输出结果: ['a', 'b', 'c', 'e'] '''
1.3组织列表:sort()、sorted()、reverse()、len()
方法 | 描述 |
---|---|
list.sort() | sort()直接修改原list。永久性地修改列表元素的排列顺序。 |
list.sorted() | sorted()是Python的内置函数,会返回一个新的已经排好序的list,不更改原list。 |
list.reverse() | reverse()反转列表元素的排列顺序。 |
len(list) | len()获得列表长度 |
sort()与sorted()函数:
-
sort()只是为列表设计,会直接修改原list。也就是说,方法sort()永久性地修改列表元素的排列顺序。
-
list.sort(cmp=None, key=None, reverse=False) # cmp和key: 可选,这两个参数可以暂时不用管 # reverse: 排序规则。reverse=True,降序;reverse=False,升序;默认为升序。
-
-
sorted()是Python的内置函数,会返回一个新的已经排好序的list,不更改原list。sorted()可接受所有可迭代对象,比如元组、字典、字符串等。
-
sorted(iterable,cmp=None,key=None,reverse=False) """ 对一个可迭代对象(iterable)排序,返回一个排好序的list iterable: 可迭代的对象 cmp: 自定义的比较函数,含两个参数 key: 自定义的函数,1个参数,参数值来源于list元素。key常与lambda结合使用。 reverse=False,升序(默认);reverse=True,降序。 """
sort()与sorted()函数演示:
# sort() letters = ['b','c','a','d','e'] numbers = [3,4,1,5,2,6] print(letters) print(numbers) '''输出结果: ['e', 'd', 'c', 'b', 'a'] [1, 2, 3, 4, 5, 6] ''' # sorted() def sorted_list(): """ 关于list类型的排序操作 """ # 数值类型 test_list = [1, 33, 6, 12] print(sorted(test_list)) print(sorted(test_list, reverse=True)) print(test_list) # 字符串类型 test_list = ["a", "boy", "named", "marvin"] print(sorted(test_list)) print(sorted(test_list, reverse=True)) print(test_list) # tuple类型 test_list = [("Up", 0), ("Down", 1), ("Left", 2), ("Right", 3)] # tuple的index=0处值比较,即"Up","Down"等比较 print(sorted(test_list, key=lambda item: item[0])) # tuple的index=1处值比较,即0,1等比较 print(sorted(test_list, key=lambda item: item[1])) print(test_list) sorted_list() '''输出结果: [1, 6, 12, 33] [33, 12, 6, 1] [1, 33, 6, 12] ['a', 'boy', 'marvin', 'named'] ['named', 'marvin', 'boy', 'a'] ['a', 'boy', 'named', 'marvin'] [('Down', 1), ('Left', 2), ('Right', 3), ('Up', 0)] [('Up', 0), ('Down', 1), ('Left', 2), ('Right', 3)] [('Up', 0), ('Down', 1), ('Left', 2), ('Right', 3)] '''
-
-
reverse():反转列表元素的排列顺序。
- reverse()永久性地修改列表元素的排列顺序,但随时可恢复原来的排列顺序,只需对列表再次调用reverse()即可。
-
len():获取列表长度
# reverse()反转列表元素的排列顺序 cars = ['bmw','audi','toyota','subaru'] cars.reverse() print(cars) '''输出: ['subaru', 'toyota', 'audi', 'bmw'] ''' # len() 获取列表长度 cars = ['bmw','audi','toyota','subaru'] length = len(cars) print(length) '''输出: 4'''
1.4避免索引错误:list index out of range
- 索引错误意味着Python在指定索引处找不到元素
- 列表元素的索引从0开始,最后一个元素的索引为-1
- 当列表为空时,使用索引也会发生错误
参考学习:
python sorted方法:https://blog.csdn.net/ymaini/article/details/81633775
相关书籍:《Python编程从入门到实践(第2版)》