列表list:
1、用[ ]或list( )创建,列表的值可重复。
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
2、用索引来访问list中每一个位置的元素,从0开始:
>>> classmates[0]
'Michael'
>>>arr = [[1, 2, 3],
[2, 4, 6],
[3, 6, 9],
[4, 8, 12]]
>>>arr[1][1]
4
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素,以此类推,可以获取倒数第2个、倒数第3个:
>>> classmates[-1]
'Tracy'
>>> classmates[-2]
'Bob'
3、list是一个可变的有序表,所以可以:
(1)追加元素到末尾
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
(2)把元素插入到指定的位置
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
(3) 删除list末尾的元素,用pop()方法
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
(4)删除指定位置的元素,用pop(i)方法,或者del。删除指定值得元素用remove()
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
>>>del classmates[-1] #删除最后一个
>>>classmates.remove('Michael')
(5)把某个元素替换成别的元素,直接赋值
>>> classmates[1] = 'Sarah'
4、list里面的元素的数据类型可以不同,可以是另一个list
>>> L = ['Apple', 123, True]
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
要拿到’php’用s[2][1],因此s可以看成是一个二维数组
5、len( )获取长度
>>> len(s)
4
6、
sort( ):会对列表排序,并改变原列表
sorted():返回排序之后的列表副本,不改变原列表
默认是升序排列,令reverse=True可以改成降序
>>>classmates = ['Michael', 'Bob', 'Tracy']
>>>sorted_classmates=sorted(classmates)
>>>sorted_classmates
['Bob', 'Michael', 'Tracy']
>>>classmates
['Michael', 'Bob', 'Tracy'] #没变
>>>classmates.sort()
>>>classmates
['Bob', 'Michael', 'Tracy'] #变了
>>>classmates.sort(reverse=True)
>>>classmates
['Tracy', 'Michael','Bob',]
元祖tuple:
1、tuple一旦初始化就不能修改,长度也不能变,没有append(),insert()这样的方法。
classmate=('Bob','Jeff','Henry')
2、取值跟list一样,但是也是list是[ ],tuple是( )。
3、“可变的”tuple
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
这个tuple定义的时候有3个元素,分别是’a’,’b’和一个list,list可变导致了这个“可变的”tuple。
字典 dict:
1、使用键-值(key-value)存储,用{ }表示
d = {'Michael': 80, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
80
2、用[key]添加或修改元素
d['Jim']=60
d['Bob']=50
3、用del删除具有指定键的元素
del d['Bob']
4、用update()合并字典
other={'Tom':30,'Mar':90}
d.update(other)
>>>d
{'Mar':90,'Tracy': 85,'Tom':30,'Michael': 80, 'Bob': 75}
5、用keys()获取所有键
>>>d.keys()
dict_keys(['Michael', 'Bob','Tracy','Tom','Mar'])
6、用values()获取所有值
>>>d.values()
dict_values([80,75,85,30,90])
7、用items()获取所有键值对
>>>list(d.items())
[('Bob', 75), ('Mar', 90), ('Tom', 30), ('Michael', 80), ('Tracy', 85)]
8、判断某个key是否存在
通过in判断
>>> 'Thomas' in d
False
通过get()判断,如果key不存在,可以返回None(此时命令行不显示结果),或者自己指定的value。
>>> d.get('Thomas')
>>> d.get('Thomas', -3)
-3
集合set:
1、用set()创建集合,或者用大括号将一系列以逗号隔开的值包裹起来。集合是无序的。
>>> empty_set = set()
>>> empty_set
set()
>>> even_numbers = {0, 2, 4, 6, 8}
>>> even_numbers
{0, 8, 2, 4, 6}
>>> odd_numbers = {1, 3, 5, 7, 9}
>>> odd_numbers
{9, 3, 1, 5, 7}
2、集合的组合
交集:&或者intersection()
并集: | 或者union()
差集: - 或者difference()
>>> a = {1, 2}
>>> b = {2, 3}
>>> a & b
{2}
>>> a.intersection(b)
{2}
>>> a | b
{1, 2, 3}
>>> a.union(b)
{1, 2, 3}
>>> a - b
{1}
>>> a.difference(b)
{1}
比较这几种数据结构
1、方括号[]创建列表
2、逗号创建元组
3、花括号{}创建字典
>>> a_list = ['Groucho', 'Chico', 'Harpo']
>>> a_tuple = 'Groucho', 'Chico', 'Harpo'
>>> a_dict = {'Groucho': 'banjo', 'Chico': 'piano', 'Harpo': 'harp'}
>>> a_list[2]
'Harpo'
>>> a_tuple[2]
'Harpo'
>>> a_dict['Harpo']
'harp