Loading...
墨滴

瀋凣

2021/09/12  阅读:45  主题:极简黑

python笔记15

Python day15

1. 列表的方法

1.3 改

1.3.1 通过下标更改

>>> students = ['张博然','刘毅恒','赵泽润','胡宇轩','李子柒','王硕','孙宇扬','曲雨菲']
>>> students[4] = '李子傲'
>>> students
['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']

1.3.2 通过切片更改

>>> students
['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']
>>> students[:2] = ['王思聪','孙一宁']
>>> students
['王思聪','孙一宁','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']

上述两种更新方法的执行过程:

  1. 将赋值符号=左边指定的内容删除;
  2. 将包含在赋值符号=右边的可迭代对象中的片段插入左边被删除的位置。

1.3.3 sort()

sort()方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

语法:
list.sort(key=None,reverse=False)
#key -- 主要是用来进行比较的元素。
#只有一个参数,具体的函数的参数就是取自于可迭代对象中,
#指定可迭代对象中的一个元素来进行排序。
#reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
举个栗子:
  • 例1
>>> nums = [2,7,1,3,9,0,4,6]
>>> nums.sort()
#该方法没有返回值,但是会对列表的对象进行排序。
>>> nums
[0,1,2,3,4,6,7,9]
  • 例2
>>> words = ['A','b','C','d','E','f','G','h']
>>> words.sort()
>>> words
['A''C''E''G','b''d''f','h']
#按字典顺序排列
  • 例3
>>> list1 = ['hello','nice',2,'meet','U','it'.'is',4,'U']
>>> list1.sort()
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

1.3.4 reverse()

reverse()方法用于反向列表中元素。

语法:
list.reverse()
举个栗子:
>>> nums
[0,1,2,3,4,6,7,9]
>>> nums.reverse()
#该方法没有返回值,但是会对列表的元素进行反向排序。
>>> nums
[9,7,6,4,3,2,1,0]

回过头来看一下sort()方法,里面正好有一个reverse参数······
所以,当我们想要倒序排列一个列表,只要这样:

>>> nums = [2,7,1,3,9,0,4,6]
>>> nums.sort(reverse=True)
>>>nums
[9,7,6,4,3,2,1,0]

1.4 查

1.4.1 count()

count()方法用于统计某个元素在列表中出现的次数。

语法:
list.count(obj)
#obj -- 列表中统计的对象。
举个栗子:
>>> list1 = [1,1,4,5,1,4]
>>> list1.count(1)
3
#返回元素在列表中出现的次数。

1.4.2 index()

index()方法用于从列表中找出某个值第一个匹配项的索引位置。

语法:
list.index(x[, start[, end]])
#x-- 查找的对象。
#start-- 可选,查找的起始位置。
#end-- 可选,查找的结束位置。
举个栗子:
>>> students = ['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']
  • 例1
>>> students.index('李子傲')
4
#该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
  • 例2
>>> students.index('赵泽润',2)
#指定查找的范围,从2下标开始一直到最后
2
  • 例3
>>> students.index('王硕',2,5)
#指定查找的范围,从2下标开始,到5下标结束
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ValueError: '王硕' is not in list
#包括开头不包括结尾

1.4.3 copy()

copy()函数用于复制列表,类似于a[:]

语法:
list.copy()
举个栗子:
>>> studentsCopy = students.copy()
#返回复制后的新列表。
>>> studentsCopy
['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']
>>> studentsCopy2 = students[:]
>>> studentsCopy2
['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']

这时候就有同学问了,直接赋值不是更简单方便吗?

>>> studentsCopy3 = students
>>> studentsCopy3
['张博然','刘毅恒','赵泽润','胡宇轩','李子傲','王硕','孙宇扬','曲雨菲']

这两种是不一样的。
copy()方法的拷贝我们称为浅拷贝,与之对应的我们称为深拷贝

那么什么是浅拷贝什么是深拷贝呢?下节课讲~

点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/09/12  阅读:45  主题:极简黑

作者介绍

瀋凣