正文
Python基础_ONLINE习题集_03 数据类型
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
3.1 将元组(1,2,3) 和集合{"four",5,6}合成一个列表
tuple,set,list = (1,2,3),{"four",5,6},[]
for i in tuple:
list.append(i)
for j in set:
list.append(j)
print(list)
3.2 将列表[3,7,0,5,1,8]中大于5元素置为0,小于5的元素置为1
list2 = [3,7,0,5,1,8]
print(list2)
for i in range(0,len(list2)):
if list2[i] >5:
list2[i] = 0
elif list2[i]<5:
list2[i]=1
print(list2)
3.3 将列表["mo","deng","ge"]和[1,2,3] 转换成[("mo",1),("deng",2),("ge",3)]
#方法一:遍历元素法
Sl1,Nl1,new_list1=["mo","deng","ge"],[1,2,3],[]
for i in Sl1:
for j in Nl1:
if Sl1.index(i) == Nl1.index(j):
new_list1.append((i,j))
print("new_list1=",new_list1) #方法二:遍历下标法
Sl2,Nl2,new_list2=["mo","deng","ge"],[1,2,3],[]
for a in range(0,len(Sl2)):
for b in range(0,len(Nl2)):
if a == b:
new_list2.append((Sl2[a],Nl2[b]))
print("new_list2=",new_list2) #方法三:切片组合法
Sl3,Nl3=["mo","deng","ge"],[1,2,3]
print("new_list3=",[(Sl3[0],Nl3[0]),(Sl3[1],Nl3[1]),(Sl3[2],Nl3[2])]) #方法四:遍历下标投机取巧法
Sl4,Nl4,new_list4=["mo","deng","ge"],[1,2,3],[]
for k in range(0,3):
new_list4 += [(Sl4[k],Nl4[k])]
print("new_list4=",new_list4)
#运行结果:
"""
new_list1= [('mo', 1), ('deng', 2), ('ge', 3)]
new_list2= [('mo', 1), ('deng', 2), ('ge', 3)]
new_list3= [('mo', 1), ('deng', 2), ('ge', 3)]
new_list4= [('mo', 1), ('deng', 2), ('ge', 3)]
"""
3.4 若a = dict(),令 b = a,执行b.update({"x":1}),a亦改变,为何,如何避免
原因:一个变量赋给另一个变量等价于这两个变量引用同一个地址所存储的值
解决:重新开辟空间可以取消两变量间的关联(每一个表达式都会有值都会重新开辟空间,变量名所引用的值要看赋给它的是什么)
#方法一:copy()函数复制
a = {1:"mo",2:"deng"}
b = a.copy()
b.update({"x":"/"})
print(a,b) #方法二:解包赋值法
a = {1:"mo",2:"deng"}
b = dict()
b.update(a)
b.update({"x":"/"})
print(a,b) #运行结果:
"""
{1: 'mo', 2: 'deng'} {1: 'mo', 2: 'deng', 'x': '/'}
{1: 'mo', 2: 'deng'} {1: 'mo', 2: 'deng', 'x': '/'}
"""
3.5 将二维结构[['a',1],['b',2]]和(('x',3),('y',4))转换成字典
#将二维结构[["a","/"],["b",2]]和(("x",3),("y",4))转换成字典
list1,tuple1=[["a","/"],["b",2]],(("x",3),("y",4))
dict1=dict(list1)
dict2=dict(tuple1)
print(dict1,dict2)
#运行结果:
"""
{'a': '/', 'b': 2} {'x': 3, 'y': 4}
"""
3.6
3.7