列表:python的主力
列表不同于元组和字符串———列表是可变的,即可修改其内容
1.函数list
鉴于不能像修改列表那样修改字符串,因此在有些情况下使用字符串来创建列表很有帮助。为此,可以使用list函数。
注意:可将任何序列(不仅仅是字符串)作为list函数
2.基本的列表操作
可对列表执行所有的标准序列操作,如索引,切片,拼接和相乘,但列表的有趣之处在于他是可以修改的。以下将介绍一些列表修改的方式:给元素赋值、删除元素、给切片赋值以及使用列表的方法
1) 修改列表:给元素赋值
使用索引表示法给特定位置元素赋值,如
2)删除元素
从列表中删除元素也很容易,只需要使用del语句即可
3) 废给切片赋值
切片是一项及其强大的功能,而能够给切片赋值让这项功能显得更强大
>>> name = list('hello') ###使用来创建列表这样就可以对字符串进行修改
>>> name
['h', 'e', 'l', 'l', 'o']
>>> name[3:] = list('ar')
>>> name
['h', 'e', 'l', 'a', 'r']
>>>
从上述代码可知,可同时给多个元素赋值,还可以通过使用切片赋值,可将切片替换为长度与其不同的序列
使用切片还可在不替换原有元素的情况下插入新元素
在这里我替换了一个空切片,相当于插入了一个序列。可以采用相反的措施来删除切片
3) 列表方法
方法是与对象(列表,数,字符串等)联系紧密的函数通常向下面这样调用
object.method(arguments)
1) append :方法append用于将一个对象添加到列表末尾
2) clear :方法clear就地清空列表内容 类似于切片赋值语句lst[:]=[]
3) copy :方法copy复制列表
常规复制只是将另一个名称关联到列表(a和b指向同一个内存空间)
要让a和b指向不同的列表,就必须将b关联到a的副本(也就是指向不同的内存空间)
4) count :方法count计算指定的元素在列表中出现了多少次
5) extend :方法extend让你能够同时将多个值附加到列表末尾,为此可将这些值组成序列作为参数提供给方法extend.。换而言之,就是用一个列表来扩展了另一个列表
这可能看起来类似于拼接,但存在一个重要的差别,那就是将修改被扩展的序列(这里是a)。在常规拼接中,情况是返回一个全新的列表
(如你所见,拼接出来的列表与前一个示例扩展得到的列表完全相同,但这里的a并没有被修改)
(鉴于常规拼接必须使用a和b的副本创建一个新列表)
6) index :方法index在列表中查找指定值第一次出现的索引
(搜索单词‘are’时,发现它位于索引1处,搜索'who'时发生了异常,因为根本就没有找到这个单词)
7)insert 方法insert用于将一个对象插入列表
与extend一样,也可以使用切片赋值来获得与insert一样的效果。
8)pop :方法pop从列表中删除一个元素(默认为最后一个元素),并返还这一元素
注意:pop时唯一既修改列表又返回一个非None值的列表方法
9) remove :方法remove用于删除第一个为指定值的元素
注意:remove时就地修改且不返回值的方法之一。不同于pop的是,它修改列表,但不返回任何值
10) reverse :方法reverse按相反的顺序排列表中的元素
11) sort :方法sort用于对序列就地排序。就地排序意味着对原来的列表进行修改,使其元素按顺序排列而不是返回后的列表副本
>>> x = [5,3,2,5,4,1,2]
>>> y=x.sort() ###Don't do this!!!
>>> print(y)
None
>>>