一、创建列表
普通列表:member = ['a', 'b', 'c']
混合列表:members = ['a' , 1, [1,2,3]]
空列表 :ampty = []
二、向列表添加元素
member.append('xxxx') #对象的函数叫方法;向尾部条件;只能添加一个元素
member.extend(['a', 'b']) #用一个列表扩展另一个列表;只有一个参数 +号也可以
member.insert(1, 'xx') #在指定位置插入元素
三、从列表中获取元素
使用member[1]
颠换列表内的两个值,可以使用中间值temp
切片,见五中代码
四、从列表删除元素
member.remove('a') #从0 index开始删除第一个匹配的;当不存在时,会抛出ValleError
del member[2]
del member #删掉整个列表
member.pop() #从尾部弹栈;返回弹出的元素
member.pop(1) #弹出index为1的元素
五、列表切片
得到的是拷贝;包含前,不包含后;尾为len(list)
前省略为0,后省略为尾;前后都省略是列表的拷贝,即member2 = member[:]
第三个可以是步长,-1为倒序
>>> a = [1,2,3,4]
>>> a[1:2]
[2]
>>> a[1:2] = 'a'
>>> a
[1, 'a', 3, 4]
>>> a[:] = 'xx'
>>> a
['x', 'x']
>>> a = [1,2,3,4]
>>> b = a[1:2] 有赋值号时才是拷贝!,以上不是拷贝,是通过切片获取元素并修改
>>> b
[2]
>>> b[0] = 'x'
>>> a
[1, 2, 3, 4]
>>>
六、列表的常用操作符
比较操作符、逻辑操作符:
list1 > list2 默认从第0个元素开始比较,有结果就不在比较后边的;字符串比较ascii码
连接操作符:
list1 + list2 相当于extend方法
重复操作符:
list1 * 3 相当于list1 + list1 + list1
list1 *= 3
成员关系操作符:
in not in
list = [123, ['liyi', 'b'], 345]
'liyi' in list #False
'liyi' in list[1] #True
list[1][0] #返回‘liyi’
七、列表内的方法
dir(list) 显示list的所有方法等
list3.reverse() #倒序list;原地修改;
list3.sort() #按照指定的方法进行排序,就地修改;
list.sort(func, key, reverse) #func是指定排序的算法;key是跟算法搭配的关键字;reverse倒序 list3.sort(reverse=True)
list1.count() #计算参数在列表中出现的次数
Help on built-in function index:
index(...) method of builtins.list instance
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
clear() 方法用于清空列表的元素,但要注意,清空完后列表仍然还在哦,只是变成一个空列表。
1. >>> list2.clear()
2. >>> list2
3. []
八、列表的拷贝
list2 = list1[:]
list2 = list1不是拷贝,是同时指向
copy() 方法跟使用切片拷贝是一样的:
1. >>> list2 = list1.copy()
2. >>> list2
3. [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
九、显示index的两个方法
1.方法一:
2.count = 0
3.length = len(member)
4.while count < length:
5. print(member[count], member[count+1])
6. count += 2
7.
8.方法二:
9.
10.for each in range(len(member)):
11. if each%2 == 0:
12. print(member[each], member[each+1])
十、列表也是指向那种变量
1.>>> old = [1, 2, 3, 4, 5]
2.>>> new = old
3.>>> old = [6]
4.>>> print(new)
打印[1, 2, 3, 4, 5],把old做了个重指向
十一、列表推导式List comprehensions(列表解析式)
灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:
[有关A的表达式 for A in B]
1. >>> [i*i for i in range(10)]
2. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)]
等价于
1. list1 = []
2. for x in ragne(10):
3. for y in range(10):
4. if x%2 == 0:
5. if y%2 != 0:
6. list1.append((x, y))