1、list
(1) python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。(有点类似c++中的链表?)
1 >>> classmates = ['Michael', 'Bob', 'Tracy'] 2 >>> classmates 3 ['Michael', 'Bob', 'Tracy']
(2) 可以用索引来访问list中每一个位置的元素,索引是从0开始。当索引超出了范围时,python会报一个indexerror错误。
(3) 0如果要取最后一个元素,除了计算索引位置外,还可以用 -1 做索引,直接获取最后一个元素。L[-1] L[-2]
(4) 要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
(5) list里面的数据类型也可以不同
(6) list元素也可以是另一个list. (类似二位数组)
(7) 如果一个list中一个元素也没有,就是一个空的list, 它的长度为0
(8) list可进行的操作:
len() 可以获得list元素的个数。len(L)
append() 追加元素到末尾。L.append(123)
insert() 把元素插入到指定的位置。L.insert(1, 234)
pop() 删除list末尾的元素. L.pop() 删除指定位置的元素. L.pop(i)
2. tuple
(1) 另一种有序列表叫元组: tuple. tuple和list非常类似, 但是tuple一旦初始化就不能修改. 如下classmates这个tuple不能变了, 它也没有append(), insert(), 这样的方法. 但是其他获取元素的方法是一样的. 例如: classmates[0], classmates[-1].
>>> classmates = ('Michael', 'Bob', 'Tracy')
(2) 因为tuple不可变, 所以代码更安全. 如果可能, 能用tuple代替list就尽量用tuple
(3) 当定义一个tuple时, 在定义的时候, tuple的元素就必须被确定下来. t = (1, 2)
(4) 如果要定义一个空的tuple : t = ()
(5) 如果要定义一个只有一个元素的tuple, 不能直接定义, 需要加一个逗号. t = (1,)
(6) tuple所谓的不变是说, tuple的每个元素, 指向永远不变. (类似 指针 ?)
3. 循环
(1) python有两种循环, for...in循环, 依次把list和tuple中的每个元素迭代出来
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
(2) 第2种循环是while循环, 只要条件满足, 就不断循环, 条件不满足时退出循环.
#计算100以内所有奇数的和 sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
(3) python中同样有 break, continue
4. dict
(1) python内置了字典: dict的支持, 在其他语言中也称为map, 使用键-值(key-value)存储, 具有几块的查找速度
(2) list越长, 查找的时间越长, 这是因为list查找是从头查找. dict是先把键通过哈希算法 计算出一个页码, 然后在这个页码上放值, 查找的时候只要给出键, 就可以立马去这个页码 找到 值, 因此速度很快, 不会随着数据的增加而减慢.
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95
(3) 把数据放入dict的方式, 除了初始化时指定外, 还可以通过key放入: d['adam']=67
(4) 由于一个key只能对应一个value, 所以, 多次对一个key放入value, 后面的值会把前面的值覆盖掉
(5) 判断key是否存在: 'Thomas' in d 返回 false 或者用 d.get('Thmas') 不存在返回None
(6) 删除一个key:d.pop('Bob')
(7) 在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
5. set
(1) set和dict类似, 也是一组key的集合, 但不存储value. 由于key不能重复, 所以, 在set中, 没有重复的key
(2) 要创建一个set, 需要提供一个list作为输入集合, 重复的元素在set中自动被过滤掉
>>> s = set([1, 2, 3]) >>> s {1, 2, 3}
(3) s.add(4) 增加元素 s.remove(4) 删除元素