一、字典的内置方法
1.定义方式
'''
1.定义方式:在{}内用逗号分隔开多元素,
每一个元素都是key:value的形式,其中value可以是任意类型,
而key则必须是不可变类型,通常key应该是str类型,因为str类型会对value有描述性的功能
'''
d = {'username': 'kevin'}
print(d)
d = {}
print(d)
info = dict(name='tony', age=18, sex='male')
print(info)
2.按key存取值:可存可取
dic = {
'name': 'xxx',
'age': 18,
'hobbies': ['play game', 'basketball']
}
print(dic['name'])
print(dic['hobbies'])
print(dic['hobbies'][1])
dic['name'] = 'kevin'
print(dic)
dic['gender'] = 'male'
print(dic)
d = {'username': 'kevin', 'age': 18}
print('kevin' in d)
print('username' in d)
print('username' not in d)
3.删除:字典删除K值,必须要写上要删除的key值,不能通过索引删除值
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
d.pop('username')
print(d)
del d['gender']
print(d)
4.键keys(),值values(),键值对items()
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
print(d.keys())
print(d.values())
print(d.items())
for i in d.keys():
print(i)
for i in d.values():
print(i)
for items in d.items():
print(items)
5.字典的其它操作
5.1 get() 若使用get取值,key存在,直接取出对应的值,若key不存在,返回None
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
print(d['username'])
print(d.get('username'))
print(d.get('username1'))
if d.get('username'):
print('有值')
else:
print('无值')
'''
以后字典取值最好使用get取值,不会直接报错
注意:get取值可以传递第二个参数,意思是默认值,
当取出的key不存在的时候,直接返回第二个参数的值
'''
print(d.get('username', 'xxx'))
print(d.get('username1', 'xxx'))
5.2 pop() 删除指定的key对应的键值对,并返回值
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
print(d.pop('username'))
print(d)
5.3 popitem() 随机删除一组键值对,并将删除的键值放到元组内返回
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
print(d.popitem())
print(d)
5.4 update() 若字典的K存在就修改原值,若K不存在则添加一个新的值
d = {'username': 'kevin', 'age': 18, 'gender': 'male'}
dic = {'username': 'tank', 'hobbies': ['read', 'music', 'write']}
d.update(dic)
print(d)
5.5fromkeys() 和 setdefault()
'''
使用fromkeys()初始化出来的值,
占用的是一样的内存地址,有一个值改变了,其它的值跟着就改变
'''
dic = dict.fromkeys(['k1', 'k2', 'k3', 'k4'], [])
print(dic)
dic['k1'].append(666)
print(dic)
dic['k1'].append(999)
print(dic)
dic['k1'].append(888)
print(dic)
dic = {'k1': 111, 'k2': 222}
res = dic.setdefault('k3', 333)
print(dic)
print(res)
二、元组的内置方法
1.定义
使用小括号括起来,内部存放多个元素,元素之间逗号个隔开,
元素值不支持修改(索引对应的那个元素不能修),不可变的列表
2.类型转换
print(tuple('hello'))
print(tuple((1, 2, 3, 4)))
print(tuple([1, 2, 3, 4]))
print(tuple({'username': 'kevin', 'age': 18}))
print(tuple({1, 2, 3, 4}))
3.取值与切片
t = (1, 2, 3, 4)
print(t[0])
print(t[1])
print(t[-1])
print(t[-2])
print(t[0:2])
print(t[0:])
print(t[:2])
print(t[::2])
4.长度、成员运算、循环
t = ('jack', 'tony', 1, 2, [1, 2, 3])
print(len(t))
print('haha' in t)
print('haha' not in t)
for line in t:
print(line)
*************************************
t1 = (123)
t2 = (12.3)
t3 = (1)
t4 = (123,)
print(type(t1))
print(type(t2))
print(type(t3))
print(type(t4))
'''
当元组内只有一个元素的时候,也要加上逗号结尾,否则不是元组类型
建议:
只要是容器类型,当元素只有一个的时候,建议都加上逗号
容器类型:
只要是能够存放多个元素的数据类型都可以称之为容器类型
'''
lst = [1, ]
print(type(lst))
三、元组的内置方法
"""
定义:在{}内用逗号分隔开多个元素,集合具备以下三个特点:
1:每个元素必须是不可变类型
2:集合内没有重复的元素
3:集合内元素无序
"""
s = {1,2,3,4}
d = {}
s = set()
四、集合
1.类型转换和集合的功能:去重、集合运算、无序
定义:在{}内用逗号分隔开多个元素,集合具备以下三个特点:
1:每个元素必须是不可变类型
2:集合内没有重复的元素
3:集合内元素无序
print(set('123'))
print(set('hello'))
print(set([1, 2, 3, 4]))
print(set((1, 3, 5, 7)))
print(set({'username': 'kevin', 'age': 18, 'gender': 'male'}))
"""课堂练习1:"""
s = {1, 2, 3, 4, 4, 3, 2, 23, 534, 65, 76, 78, 43, 324, }
print(s)
name_list = ['kevin', 'tank', 'tony', 'tony', 'jack', 'jack', 'jack', 'tony', 'ly', ]
print(set(name_list))
print(list(set(name_list)))
new_list = []
for name in name_list:
if name not in new_list:
new_list.append(name)
print(new_list)
2.集合的关系运算
friends1 = {"zero", "kevin", "jason", "egon"}
friends2 = {"Jy", "ricky", "jason", "egon"}
print(friends1 | friends2)
print(friends1 & friends2)
print(friends1 - friends2)
print(friends2 - friends1)
print(friends1 ^ friends2)
print(friends1 == friends2)
print({1, 3, 2} >= {1, 2, 3})
print({1, 2, 3} < {1, 2})
print({1, 2} <= {1, 2, 3})
集合运算练习题
l = ['a', 'b', 1, 'a', 'a']
s = set(l)
print(s)
l = [
{'name': 'lili', 'age': 18, 'sex': 'male'},
{'name': 'jack', 'age': 73, 'sex': 'male'},
{'name': 'tom', 'age': 20, 'sex': 'female'},
{'name': 'lili', 'age': 18, 'sex': 'male'},
{'name': 'lili', 'age': 18, 'sex': 'male'},
]
new_l = []
for dic in l:
if dic not in new_l:
new_l.append(dic)
print(new_l)
"""
[
{'age': 18, 'sex': 'male', 'name': 'lili'},
{'age': 73, 'sex': 'male', 'name': 'jack'},
{'age': 20, 'sex': 'female', 'name': 'tom'}
]
"""
3.长度、成员运算、循环
s = {'a', 'b', 'c', 'd'}
print(len(s))
print('c' in s)
for item in s:
print(item)