字典

通过标签(关键字)来索引数据,区别于列表或者元组通过连续的整数来索引。

注意:dict是一个关键字,不能被当作变量。

创建一个字典

1
2
3
4
5
6
7
8
9
10
11
student={'name':'helloworld'}
# {'name': 'helloworld'}
student['gender']='male'
student
# {'name': 'helloworld', 'gender': 'male'}
student['gender']
# 'male'
student.get('gender') # 低版本
# 'male'
student=dict(name='helloworld')
# {'name': 'helloworld'}

key和value的取值

key可以是数字,字符串,元组

value可以是任意类型

1
2
3
4
5
6
7
dict1={
1:'a',
'abc':100,
(1,2,3):[1,2,3,4,5,6]
}
dict1
# {1: 'a', 'abc': 100, (1, 2, 3): [1, 2, 3, 4, 5, 6]}

字典嵌套字典

1
2
3
4
5
6
7
8
9
10
11
12
13
14
dict1={}
dict1['a']={}
dict1['a'][1]='helloworld'
dict1
# {'a': {1: 'helloworld'}}
dict1['a']=[]
dict1['a'].append(1)
dict1['a'].append(2)
dict1
# {'a': [1, 2]}
dict1['b']={}
dict1['b'][1]='comp9021'
dict1
# {'a': [1, 2], 'b': {1: 'comp9021'}}

获取字典中所有的keys,values,每一个键值对

1
2
3
4
5
6
dict1.keys()
# dict_keys(['a', 'b'])
dict1.values()
# dict_values([[1, 2], {1: 'comp9021'}])
dict1.items()
# dict_items([('a', [1, 2]), ('b', {1: 'comp9021'})])

字典的遍历和复制

1
2
3
4
for key in dict1.keys(): 
print(key,"---",dict1[key]) # 根据key获取value
# a --- [1, 2]
# b --- {1: 'comp9021'}

或者

1
2
3
4
for key,value in dict1.items():
print(key,"---",value) # 同时获取key和value
# a --- [1, 2]
# b --- {1: 'comp9021'}

字典复制可以通过dict1.items()获取key和value

1
2
3
4
dict1={1:'a',2:'b',3:'b'}
dict2={key:value for key,value in dict1.items()}
dict2
{1: 'a', 2: 'b', 3: 'b'}

集合

是一个无序的不重复元素序列。

想要创建一个集合时,可以使用 set() 函数并传入一个可迭代对象(如列表、元组、字符串等)作为参数。这个函数会遍历可迭代对象中的每个元素,并逐个添加到集合中。

创建一个集合

1
2
3
4
5
6
7
8
9
10
11
12
set1={1, 2, 3, 1}
set1
# {1, 2, 3}
set2=set((1,2,3,1)) # 把元组转化成集合
set2
# {1, 2, 3}
set3=set('abcabc') # 把字符串转化成集合
set3
# {'a', 'b', 'c'}
set4=set([1,2,3,4,1])
set4
# {1, 2, 3, 4}

注意:创建一个空集合使用set()而不是{},因为{}是用来创建空字典。

集合添加单个元素

1
2
3
4
5
6
set1=set()
set1.add(1)
set1.add(2)
set1.add(1)
set1
# {1, 2}

集合添加多个元素

1
2
3
4
5
set1=set((1,2,3))
set2={1,2,3,4,5}
set1.update(set2)
set1
# {1, 2, 3, 4, 5}