list
取list内容
1)正序取(从0开始,注意要小于list长度)
IndexError是数组越界错误
>>> L = ['a','b','c']
>>> print L[0]
a
>>> print L[2]
c
>>> print L[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
2)倒序取(从-1开始)
>>> L=['a','b','c']
>>> print L[-1]
c
>>> print L[-3]
a
>>> print L[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
list操作(增删改)
L = [‘a’,‘b’,‘c’] M=[1,2]
例子 | 结果 | 说明 | |
---|---|---|---|
增加 | L.append(‘d’) | [‘a’,‘b’,‘c’,‘d’] | 在末尾追加数据 |
L.insert(2,‘d’) | [‘a’,‘b’,‘d’,‘c’] | 在指定位置插入数据 | |
L.extend(M) | [‘a’,‘b’,‘c’,1,2] | 将列表M的数据追加到列表L | |
修改 | L[2]=‘d’ | [‘a’,‘b’,‘d’] | 修改指定索引的数据 |
删除 | del L[2] | [‘a’,‘b’] | 删除指定索引的数据(索引<L的长度) |
del L[:] | [] | 清空 | |
L.pop() | [‘a’,‘b’] | 删除末尾数据,返回删除的值 | |
L.pop(2) | [‘a’,‘b’] | 删除指定索引的数据,返回删除的值(索引<L的长度) | |
L.remove(‘c’) | [‘a’,‘b’] | 删除第一个出现的指定数据 | |
长度 | len(L) | 3 | 列表长度 |
次数 | L.count(‘a’) | 1 | 数据在列表中出现的次数 |
排序 | L.sort() | [‘a’,‘b’,‘c’] | 升序排序 |
L.sort(reverse=True) | [‘c’,‘b’,‘a’] | 降序排序 | |
L.reverse() | [‘c’,‘b’,‘a’] | 反转 | |
遍历 | for name in L: | print name | 通过for-in遍历list |
tuple
- tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
- tuple的取值跟list一样,也可以通过负数取值
- python 规定,单元素 tuple 要多加一个逗号“,”,例子:t = (1,)
- tuple中存在list,list是可变的
dict
花括号 {} 表示这是一个dict,无序,形式 key: value。最后一个 key: value 的逗号可以省略。通过Key取value。
d = {‘a’:1,‘b’:2,‘c’:3} e={‘a’:10,‘d’:20}
例子 | 结果 | 说明 | |
---|---|---|---|
查询 | d[‘a’] | 1 | 通过 key 来查找 value(key在d中要存在) |
d.get(‘a’) | 1 | 通过 key 来查找 value(key不存在时返回none) | |
d.get(‘e’,‘c’) | ‘c’ | 通过 key 来查找 value(key不存在时返回’c’) | |
遍历 | for key in d: | print key,’:’,d.get(key) | 通过for-in遍历字典拿到的是key和value值 |
增加 | d[‘d’]=4 | {‘a’:1,‘c’:3,‘b’:2,‘d’:4} | key必须是在d中不存在的 |
修改 | d[‘c’]=‘c’ | {‘a’:1,‘c’:‘c’,‘b’:2} | key必须是在d中存在的 |
删除 | del d[‘c’] | {‘a’: 1, ‘b’: 2} | 通过key删除键值对(key必须是在d中存在的) |
d.pop(‘c’) | {‘a’: 1, ‘b’: 2} | 通过key删除键值对,返回删除的值(key必须是在d中存在的) | |
d.clear() | {} | 清空 | |
长度 | len(d) | 3 | 获取键值对的个数 |
复制 | dcopy = d.copy() | {‘a’: 1, ‘c’: 3, ‘b’: 2} | 将d中的键值对复制一份给dcopy |
创建 | d1 = d.fromkeys(‘abc’, 1) | d1的结果:{‘a’: 1, ‘c’: 1, ‘b’: 1} | d的结果:{‘a’: 1,‘b’:2,‘c’:3} |
d1=d.fromkeys([‘a’,‘b’,‘c’],(1,2)) | d1的结果:{‘a’: (1, 2), ‘c’: (1, 2), ‘b’: (1, 2)} | d的结果:{‘a’: 1,‘b’:2,‘c’:3} | |
方法 | d.keys() | [‘a’, ‘c’, ‘b’] | 返回所有键对应的序列 |
d.values() | [1, 3, 2] | 返回所有值对应的序列 | |
d.items() | [(‘a’, 1), (‘c’, 3), (‘b’, 2)] | 将每个键值对转换成元祖,作为一个序列的元素 | |
.setdefault() | d中有key返回查询的结果,没有key将会添加键key并将值设为None或者value | ||
d.setdefault(‘a’) | 返回值是:1 | d的结果是:{‘a’:1,‘c’:‘c’,‘b’:2} | |
d.setdefault(‘d’) | 返回值是:none | d的结果是:{‘a’: 1, ‘c’: 3, ‘b’: 2, ‘d’: None} | |
d.setdefault(‘e’,5) | 返回值是:5 | d的结果是:{‘a’: 1, ‘c’: 3, ‘b’: 2, ‘e’: 5} | |
d.update(e) | d的结果:{‘a’: 10, ‘c’: 3, ‘b’: 2, ‘d’: 20} | 把e的键值对更新到d里,不存在的键值对则进行添加 |
set
set是无序集合,没法通过索引来访问。更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。
L = set([‘a’,‘b’,‘c’])
例子 | 结果 | 说明 | |
---|---|---|---|
增加 | L.add(‘d’) | set([‘a’, ‘c’, ‘b’, ‘d’]) | 添加数据 |
删除 | L.remove(‘c’) | set([‘a’, ‘b’]) | 删除指定数据(要在L中存在) |
长度 | len(L) | 3 | 列表长度 |
遍历 | for name in L: | print name | 通过for-in遍历set |