一、列表:列表是可变的,可以改变列表的内容,并且提供很多有用的,专门的方法。
基本的列表操作:
1、list函数:适用于所有类型的序列,根据序列创建列表。
2、基本的列表操作:元素赋值。通过索引进行赋值。
3、删除元素:del语句。
4、分片赋值:
name[2:]=list('ar'):使用['a','r']替换['r','l']。
列表方法:对象.方法(参数)
1、append方法:在列表末尾追加下的对象,通过直接修改了原来的列表。原列表将不复存在。无返回值。
2、count方法:统计某个元素在列表中出现的次数,有返回值。
3、extend方法:使用新列表扩展原有列表,修改了被扩展的序列。无返回值。
4、index方法:从列表中找出某个值第一个匹配项的索引位置。有返回值。
5、insert方法:用于将对象插入的列表中。无返回值。
6、pop方法:移除列表中某个元素,默认移除最后的元素,也可以使用索引指定需移除的元素。有返回值。
栈:后进先出。
7、remove方法:移除列表中某个值的第一个匹配项。修改了原有列表,没有返回值。
8、reverse方法:将列表中的元素反向存放,改变了列表,没有返回值。
9、sort方法:在原位置对列表进行排序。改变了列表,没有返回值。
如果我们需要一个排好序的列表副本,同时又保留原有列表不变的时候,该怎么办?
这样是错误的,得到了已排序的x以及值为None的y,因为sort方法修改了x却返回了空值。
正确的做法:需要将x的副本赋值给y,再对y进行排序。
或者使用sorted函数:sorted函数可以用于任何序列,却总是返回一个列表。
10、高级排序:
compare(x,y)自定义比较函数,当x<y返回负数,当x>y返回整数,当x=y返回0。
內建函数cmp提供了比较函数的默认实现方式。
key:根据元素长度进行排序,使用len作为键函数:
reverse:简单的布尔值,true或者false,指明列表是否需要反向排序。
元组:不可变的序列,元组不能被修改。
使用逗号分隔一些值,来创建元组。
():空元组,元组必须使用逗号隔开,否则不能创建元组。
tuple函数:以一个序列作为参数并把它转换成元组。