列表list的定义和初始化
list() -> new empty list
list(iterable) -> new list initialized from iterable’s items
lst=[1,[],’we’,None]
iterable可迭代对象可以是列表,元组,字符串.
列表中的元素可以是任意元素,除了未定义的变量
元组的定义方法和它一样
list,tuple和字符串 都可以用 +,* 的方法返回一个新的list,tuple和字符串
lst+lst2 , lst*lst2 获得一个新的列表
……….
使用 对象名[index] 或者 对象[index]可以访问索引对应的元素
lst[1] –>[] , [1,[],’we’,None][3] –>None
s=’scf jkl’ s[2] –>’f’
三者都支持负索引访问,且方法一至
三者中只有列表是可变的,所以列表可以经过函数和方法处理后返回对自身的修改,而元组和字符串只能定义和删除.
有些方法在列表和其他方法中都有但使用上有差别
比如lst[2]=’abc’ 可以完成对列表中一个元素的修改,而对元组和列表使用类似操作不会返回对自身的修改或建一个新
的对象,而是直接报错.
三者共有且使用时没有明显差别的方法和函数
除了 * ,+外
len(对象或对象名) 返回对象的元素的总量
对象或对象名.count(value) 返回对象中的目标元素数量
对象或对象名.index(value,[start,[stop]]) 返回区间内指定元素索引(只会返回第一个找到的,匹配不到会报错)
in
[3,4] in [1, 2, [3,4]]
判断元素是否在对象中,返回布尔型
还有一些方法和函数只在list上有作用,但如果把元祖和字符串转化成list,也能完成类似操作
1.转置列表的函数reversed() 和方法reverse()
>>> a
[‘a’, ‘b’, ‘c’, ‘d’] >>>a.reverse()
>>> reversed(a) # 传入列表对象 >>>a
<list_reverseiterator object at 0x031874D0> [‘d’, ‘c’, ‘b’, ‘a’]
>>> b = reversed(a)
>>> b # 类型变成迭代器
<list_reverseiterator object at 0x037C4EB0>
>>> list(b)
[‘d’, ‘c’, ‘b’, ‘a’]
2.排序
sort(key=None, reverse=False) -> None 返回对自身的修改
lst.sort(key=functionname) key指定特定函数类型 (注意列表中元素类型必须一至才能正常执行)
3.复制 .copy()
其实元组和字符串也有类似操作
指定元组或字符串赋值给一个新的变量就完成复制
list 也有这种操作
lst1 = lst 这样获得的新列表元组,字符串指向内存中的地址和被复制的一样
但列表还有一种.copy()方法
lst1=lst.copy() 获得的列表指向了一块新的内存
4.增加插入元素
列表.append(object) -> None, 列表尾部追加元素
列表.insert(index,object) ->None 指定索引插入元素
列表.extend(iteratable) ->None 追加可迭代对象
5.删除列表元素
.remove(value) 查找元素找到后就删除并返回对自身的修改
.pop([index]) -> item 指定索引删除,返回被删除元素
.clear() 请空列表
对于元组和字符串,元组可以转化为列表甚至字符串操作
list(元组) –>列表
字符串由于其结构由字符构成,结构简单,它的操作函数花样繁多只做部分介绍.
1.count() 方法
s = “I am very very very sorry”
s.count(‘very’)
s.count(‘very’, 5)
s.count(‘very’, 10, 14)
不同于列表元组中,它可以指定连续多个字符,在指定范围内返回它的数量
2.index()和.find()方法
s = “I am very very very sorry”
s.index(‘very’) s.index(‘very’, 5)
s.index(‘very’, 6, 13)
s.rindex(‘very’, 10) (r是从右往左检索的意思)
s.rindex(‘very’, 10, 15)
s.rindex(‘very’,-10,-1)
s.find(‘very’)
s.find(‘very’, 5)
s.find(‘very’, 6, 13)
s.rfind(‘very’, 10)
s.rfind(‘very’, 10, 15)
s.rfind(‘very’,-10,-1)
list和元组中只有.index()方法
都是返回值对应的索引,但是如果没有查询到.index()和.rindex()直接报错,.find()和.rfind()返回 -1
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87551