深浅copy练习

1.看代码写结果

v1=[1,2,3,4,5]

v2= [v1,v1,v1]
v1.append(6)
print(v1)
print(v2)

结果

[1, 2, 3, 4, 5, 6]
[[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
2.看代码写结果

v1 = [1,2,3,4,5]
v2 - [v1,v1,v1]
v2[1][0] = 111
v2[2][0] = 222
print(v1)
print(v2)

[222, 2, 3, 4, 5]
[[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]
3.看代码写结果,并解释每一步的流程。

v1 = [1,2,3,4,5,6,7,8,9]
v2 = i}
for item in v1:
if item < 6:
continue
if‘k1’ in v2:
v2[ ‘k1’].append(item)
else:
v2["k1’] =[item ]
print(v2)

{“k1",[6,7,8,9]}

循环v1这个列表,判断列表的每一个值是否小于6,小于6执行下一次循环,大于等于6则执行下一个if 判断k1是否为字典v2的键,如果为字典的键,则追加一个值,否则重新创建键,值为一个列表,

4.简述深浅拷贝?
+ 浅copy:

  比如,对列表l1进行浅copy形成l2,那么在内存中会开辟一个空间存储l2这个列表,但是l2列表里面的数据还是与L1里面的数据共享。

+ 深copy:

  比如,对列表l1进行深copy形成l2,那么在内存中会开辟一个空间存储l2这个列表,l2列表里面的可变的数据也是会重新创建,但是不可变的数据还是与L1里面的数据共享。
5.看代码写结果

import copy
v1 = “alex”
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)

True
True
6.看代码写结果

import copy
v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)

False
False
7.看代码写结果


import copy

v1=[1,2,3,4,5]

v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[0] is v2[0])
print(v1[0] is v3[0])
print(v2[0] is v3[0])

True
True
True
8.看代码写结果

import copy
v1 - [1,2,3,4,[11,22]]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[-1] is v2[-1])
print(v1[-1] is v3[-1])
print(v2[-1] is v3[-1])

True
False
False
9.看代码写结果

import copy
v1 - [1,2,3,i"name":'太白·, “numbers”:[7,77,88]},4,5]
v2 = copy.copy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3][‘name’] is v2[3][ ‘name’ ])
print(v1[3][‘numbers’] is v2[3][ ‘numbers’])
print(v1[3][ ‘numbers’][1] is v2[3][ 'numbers '][1])

False
True
True
True
True
True
10.看代码写结果

import copy
v1 -[1,2,3,(“name”:“太白’ , " numbers”:[7,77,88]},4,5]
v2= copy.deepcopy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3][‘name’] is v2[3][‘name’])
print(v1[3][ 'numbers '] is v2[3][‘numbers’])
print(v1[3][ ‘numbers’][1] is v2[3][ 'numbers '][1])

False
True
False
True
False
True
11.请说出下面a,b,c三个变量的数据类型。

a = 太白金星·)
b = (1,)
c = (i 'name ’ : ‘barry’})

a是字符串
b是元组
c是字典
12.按照需求为列表排序:

l1 = [1,3,6,7,9,8,5,4,2]
#从大到小排序
#从小到太排序
#反转11列表

#从小到太排序
#从大到小排序
l1 = [1,3,6,7,9,8,5,4,2]
l1.sort()
print(l1)
#从小到太排序
l1 = [1,3,6,7,9,8,5,4,2]
l1.sort(reverse=True)
print(l1)
#反转11列表
l1 = [1,3,6,7,9,8,5,4,2]
l1.reverse()
print(l1)
13.利用python代码构建一个这样的列表(升级题):

[[’’,’‘→’’],[’’,’’,’’],[’’,’’,’_’]]

li=[]
l1=[]
for i in range(0,3):
    li.append("_")
for i in li:
    l1.append(li)
print(l1)
14.看代码写结果:

l1 = [1,2,]
l1 += [3,4]
print(l1)

[1,2,3,4]
15.看代码写结果:

dic = dict.fromkeys( ‘abc’,[])
dic[‘a’].append(666)
dic[‘b’].append(111)
print(dic)

{'a': [666, 111], 'b': [666, 111], 'c': [666, 111]}
16.l1=[11,22,33,44,55],请把索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)
l1=[11,22,33,44,55]
l2=[]
for i in range(len(l1)):
    if i%2==0:
        l2.append(l1[i])
print(l2)
17.dic = {k1:‘太白’ k2’∵’barry ;‘k3’:‘白白’, ‘age’:18}请将字典中所有键带k元素的键值对删除.
dic = {'k1':'太白', 'k2':'barry','k3':'白白','age':18}
li=[]
for key in dic.keys():
    if "k" in key:
        li.append(key)
for i in li:
    dic.pop(i)
print(dic)
18.bytes数据类型是python的基础数据类型,bytes类型存在的意义是什么?
bytes
字节类型
19.列举bytes类型与str类型的三个不同点?
20.完成下列需求:

s1 =‘太白金星·
#将s1转换成utf-8的bytes类型。
#将s1转化成gbk的bytes类型。
b = b’\xe5\xa4\xaa\xe7\x99\xbd\xe6\x9c\x80\xe5\xb81x85’

b为utf-8的bytes类型,请转换成gbk的bytes类型。

21.用户输入一个数字,判断一个数是否是水仙花数。

水仙花数是一个三位数三位数的每一位的三次方的和还等于这个数.那这个数就是一个水仙花数,
例如:153 =13+53+3**3

a=int(input("情输入一个整数").strip())
try:
    ge=a%10
    shi=a//10%10
    bai=a//100
    if ge**3+shi**3+bai**3:
        print("是水仙花数")
    else:
        print("不是水仙花数")
except:
    print("输入错误")
22.把列表中所有姓周的人的信息删掉(此题有坑,请慎重):

lst=['周老二,‘周星星’,‘麻花藤’,;'周扒皮1]
结果: lst =['麻花藤]

lst=['周老二','周星星','麻花藤','周扒皮']
li=[]
for i in lst:
    if "周" == i[0]:
        continue
    else:
        li.append(i)
print(li)

23.车牌区域划分,现给出以下车牌.根据车牌的信息,分析出各省的车牌持有量.(选做题)

cars =[鲁A32444’,‘鲁B12333;‘京B8989M’;‘黑C49678’;‘黑C46555’,,沪B25041’…]
locals = {‘沪∵’上海’,‘黑∵黑龙江,′鲁∵:山东’,′∵湖北’,湘∵湖南’…}
结果:{‘黑龙江’:2,‘山东’:1,‘北京’:1}
任务附件
2020年09月15日-2020年09月16日I不允许复制

cars =['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪B25041']
locals = {'沪':'上海','黑':'黑龙江','鲁':'山东','鄂':'湖北','湘':'湖南'}
count=0
dic={}
for key in locals.keys():
    for i in cars:
        if key == i[0]:
            count=count+1
    if count>0:
        dic[locals[key]]=count
    count=0
print(dic)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值