一、选择题
1.Python语句print(type({1:1,2:2,3:3,4:4}))的输出结果是( B )。
A.<class 'tuple'> B.<class 'dict'>
C.<class 'set'> D.<class 'frozenset'>
print(type({1:1,2:2,3:3,4:4}))
2.以下不能创建字典的语句是( C )。
A.dict1={} B.dict2={3:5}
C.dict3=dict([2,5],[3,4]) D.dict4=dict(([1,2],[3,4]))
dict1={}
dict2={3:5}
dict4=dict(([1,2],[3,4]))
print(dict1)
print(dict2)
print(dict4)
C错误的原因是对dict()函数使用的不正确
dict()函数的使用:p132
1.使用dict()函数创建一个空字典并给变量赋值。
d=dict()
print(d)
2.使用列表或元组作为dict()函数的参数。
在本题的C中,dict3=dict([2,5],[3,4]),dict()括号里面的参数并不是列表或元组
可以修改为:
d1=dict(([2,5],[3,4]))
d2=dict([[2,5],[3,4]])
print(d1)
print(d2)
3.将数据按“关键字=值”的形式作为参数传递给dict()函数
d=dict(a=2,b=3)
print(d)
3.对于字典D={'A':10,'B':20,'C':30,'D':40},对第4个字典元素的访问形式是( D )。
A.D[3] B.D[4] C.D[D] D.D['D']
4.对于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是( A )。p134
A.4 B.8 C.10 D.12
5.对于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是( B )。p137
A.10 B.100 C.40 D.200
D={'A':10,'B':20,'C':30,'D':40}
print(D.values())
print(list(D.values()))
print(sum(list(D.values())))
6.以下不能创建集合的语句是( C )。
A.s1=set() B.s2=set(“abcd”)
C.s3={} D.s4=frozenset((3,2,1))
p137:s3={}创建的是字典
7.设a=set([1,2,2,3,3,3,4,4,4,4]),则a.remove(4)的值是( A )。
A.{1, 2, 3} B.{1, 2, 2, 3, 3, 3, 4, 4, 4}
C.{1, 2, 2, 3, 3, 3} D.[1, 2, 2, 3, 3, 3, 4, 4, 4]
p137:集合是一个不重复的集合体
a=set([1,2,2,3,3,3,4,4,4,4])
print(a)
a.remove(4)
print(a)
8.下列语句执行后的结果是( D )。
fruits={'apple':3,'banana':4,'pear':5}
fruits['banana']=7
print(sum(fruits.values()))
A.7 B.19 C.12 D.15
和第五题一样
9.下列语句执行后的结果是( C )。p136
d1={1:'food'}
d2={1:'食品',2:'饮料'}
d1.update(d2)
print(d1[1])
A.1 B.2 C.食品 D.饮料
d2.update(d1)
将字典d1的“关键字:值”对添加到字典d2中。d1合并到d2,d1不变,d2变化。若d2的关键字与d1的关键字相同,d2覆盖d1相同的部分。
d1={'a':1,"b":2,"c":3}
d2=dict([['a',2],['d',4]])
print(d1)
print(d2)
d1.update((d2))
print(d1)
print(d2)
10.下列Python程序的运行结果是( B )。
s1=set([1,2,2,3,3,3,4])
s2={1,2,5,6,4}
print(s1&s2-s1.intersection(s2))
A.{1, 2, 4} B.set()
C.[1,2,2,3,3,3,4] D.{1,2,5,6,4}
s1&s2的意思是求s1与s2的交集
s1.intersection(s2)的意思也是求s1与s2的交集
二、填空题
1.在Python中,字典和集合都使用 大括号 作为定界符。字典的每个元素由两部分组成,即 关键字和 值 ,其中 关键字 不允许重复。
关键字只能是不可变类型,比如字符串,数字,元组,但不能是列表
map={1:'a',"b":2,(1,2):'k',"f":[1,2]}
print(map)
map={[1,2]:"a"}
print(map)
2.集合是一个无序、 不重复的数据集,它包括 可变集合 和 不可变集合 两种类型,前者可以通过大括号或 set() 函数创建,后者需要通过 frozenset() 函数创建。
可变集合的创建:
s1={}
print(type(s1))
print("-------------------")
s2={1,1,2,3,4,4,5,7}
print(s2)
print(type(s2))
print("-------------------")
s3=set("abcdef")#字符串,列表,元组
s4=set([1,"a","f",5,6])
s5=set((6,"5","u",6,6))
print(s3)
print(s4)
print(s5)
不可变集合的创建:
s1={1,2,3,3,4,7}
print(type(s1))
print(s1)
print("-----------")
s2=frozenset(s1)
print(type(s2))
print(s2)
3.下列语句执行后,di['fruit'][1]的值是 banana 。
di={'fruit':['apple','banana','orange']}
di['fruit'].append('watermelon')
print(di['fruit'][1])
#print(di)
4.语句print(len({}))的执行结果是 0 。
5.设a=set([1,2,2,3,3,3,4,4,4,4]),则sum(a)的值是 10 。
集合中的元素是不重复的,所以集合a={1,2,3,4}
6.{1,2,3,4} & {3,4,5}的值是 {3, 4},{1,2,3,4} | {3,4,5}的值是 {1, 2, 3, 4, 5},{1,2,3,4} - {3,4,5}的值是 {1, 2} 。
7.设有s1={1,2,3},s2={2,3,5},则s1.update(s2)执行后,s1的值为 {1, 2, 3, 5},s1.intersection(s2)的执行结果为 {2, 3} ,s1.difference(s2)的执行结果为 {1} 。
p141
s.update(s1,s2,s3...)
用集合s1,s2....中的成员修改集合s,即这几个集合的并集
s1={1,2,3}
s2={2,3,5}
print(s1.update(s2))
print(s1)
s.interection(s1,s2....)
和update函数意思差不多,这个是求交集
s1={1,2,3}
s2={2,3,5}
print(s1.intersection(s2))
print(s1)
8.下列程序的运行结果是 2 。
d={1:'x',2:'y',3:'z'}
del d[1]
del d[2]
d[1]='A'
print(len(d))
9.下面程序的运行结果是 6 。
list1={}
list1[1]=1
list1['1']=3
list1[1]+=2
sum=0
for k in list1:
sum+=list1[k]
print(sum)
10.下面程序的运行结果是 9 。
s=set()
for i in range(1,10):
s.add(i)
print(len(s))
三、问答题
1.什么是空字典和空集合?如何创建?
在Python中,空字典和空集合都是用大括号括起来的。
dict1={} #在创建空字典时,可以直接用大括号
dict2=dict() #也可以用dict()函数
print(type(dict1))
print(type(dict2))
set1={} #创建空集合时。不能只用一个大括号
set2=set() #可以用set()函数
print(type(set1))
print(type(set2))
print(dict1)
print(set1)
2.设有列表a=['number','name','score'],b=['21001','denmer',90],写一个语句将这两个列表的内容转换为字典,且以列表a中的元素为关键字,以列表b中的元素为值。
a=['number','name','score']
b=['21001','denmer',90]
dict1=dict(zip(a,b))
print(dict1)
或者
a=['number','name','score']
b=['21001','denmer',90]
map={}
for i in range(0,min(len(a),len(b))):
map[a[i]]=b[i]
print(map)
3.字典的遍历有哪些方法?
(1)遍历字典的关键字
d. keys :返回一个包含字典所有关键字的列表,所以对字典关键字的遍历转换为对列表的遍历。
(2)遍历字典的值
d. values(:返回一个包含字典所有值的列表,所以对字典值的遍历转换为对列表的遍历。
(3)遍历字典的元素
d.items():返回一个包含所有(关键字,值)元组的列表,所以对字典元素的遍历转换为对列表的遍历。
a={'number':6,'name':"sa",'score':99}
print(a)
for i in a.keys():
print(i)
for i in a.values():
print(i)
for i in a.items():
print(i)
4.集合有哪两种类型?分别如何创建?
集合包含两种类型:可变集合(set)和不可变集合(frozenset)。
set1=set((1,2,3))
print(type(set1))
set2=frozenset((1,2,3,4))
print(type(set2))
5.Python支持的集合运算有哪些?集合的比较运算有哪些?集合对象的方法有哪些?p138-p142
6.分别写出下列两个程序的输出结果,输出结果为何不同?
程序一:
d1={'a':1,'b':2}
d2=d1
d1['a']=6
sum=d1['a']+d2['a']
print(sum)
程序二:
d1={'a':1,'b':2}
d2=dict(d1)
d1['a']=6
sum=d1['a']+d2['a']
print(sum)