python学习笔记(八)

分析错误内容:不支持字符串的修改

总结:字符串一旦创建之后,里面的元素是不可以修改的。但是重新赋值是可以的,例如:name = ‘xiaobai’.

字典dict()

python字典初始化比较常用的两种方式:dict() 和 {}

性能方面,{}性能更好。

1.创建字典表
创建一个学生分数字典
s={‘stu1’:80,’stu2’:90,’stu3’:60}
2.查询

查询stu1的分数

1
2
3
>>> s['stu1']
80
>>>

3.修改value

1
2
3
4
>>> s['stu1']=50
>>> s
{'stu3': 60, 'stu2': 90, 'stu1': 50}
4.增加key

例如增加一个代表学生stu4-stu7的key-value

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> s['stu4-7']=[40,80,50,60]
>>> s
{'stu3': 60, 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
注意:key不能是变量(python里面的变量不太容易理解,就简单的理解key不能是list就行),但是value可以是变量(python里面的),value可以是常量、字符串、list、tuple等

>>> s['stu8-9']=(80,50)
>>> s
{'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
读取stu8的分数

>>> s['stu8-9'][0]
80
>>>

5.删除key

要删除一个key,用pop(key)方法,对应的value也会从dict中删除

例如:删除key”stu1”

1
2
3
4
5
6
7
8
9
10
11
>>> s.pop('stu1')
50

>>> s
{'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu4-7': [40, 80, 50, 60]}
>>> s['stu1']
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
s['stu1']
KeyError: 'stu1'
>>>

6.判断一个key是否存在

方法1:直接打印输出,如果key不存在会返回错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
>>> s['stu1']
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
s['stu1']
KeyError: 'stu1'
>>>

方法2:通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

s.get('stu1')
可以用print打印出None

>>> print (s.get('stu1'))
None
>>>
可以自己指定key不存在返回的值,例如返回1,但是返回值必须是整形

>>> s.get('stu1',1)
1
方法3:通过in判断key是否存在,不存在返回Flase

>>> 'stu1' in s
False
>>> 'stu2' in s
True

set集合

二、set([])

set和dict类似,也是一组key的集合,但不存储value;set和dict一样key不允许是list且key不能重复。

1.创建set

要创建一个set,需要提供一个list作为输入集合,注意set的固定格式,set([]),在set()中加入list

1
2
3
4
>>> se=set(['a','b','c'])
>>> se
{'b', 'c', 'a'}
注意:list中的每一个元素都是一个key,但是元素不能是list可以是常量、字符串、tuple、浮点型

2.读取key

1
2
3
>>> se
{'b', 'c', 'a'}
set不支持索引,所以没办法像list和tuple那样根据索引获取指定的key,比如se[0]会返回错误

4.增加key

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

1
2
3
4
>>> se.add('d')
>>> se
{'b', 'c', 'd', 'a'}
>>>

5.删除key

1
2
3
4
5
6
通过remove(key)方法可以删除元素

>>> se.remove('c')
>>> se
{'b', 'd', 'a'}
>>>

6.设置一个list key

1
2
3
4
5
>>> se.add(['e','f'])
Traceback (most recent call last):
File "<pyshell#74>", line 1, in <module>
se.add(['e','f'])
TypeError: unhashable type: 'list'