实例007:copy

100个不同类型的python语言趣味编程题

实例007:copy
题目 将一个列表的数据复制到另一个列表中。

程序分析 使用列表[:],拿不准可以调用copy模块。


import copy
a = [1,2,3,4,['a','b']]

b = a					# 赋值
c = a[:]				# 浅拷贝
d = copy.copy(a)		# 浅拷贝
e = copy.deepcopy(a)	# 深拷贝

a.append(5)
a[4].append('c')

print(a is b)   #True
print(a is d)   #False
print(a is e)   #False
print(a == b)   #True
print(a == c)   #False
print(a) #[1, 2, 3, 4, ['a', 'b', 'c'], 5]
print(b) #[1, 2, 3, 4, ['a', 'b', 'c'], 5]
print(c) #[1,2,3,4,['a','b','c']]
print(d) #[1,2,3,4,['a','b','c']]
print(e) #[1, 2, 3, 4, ['a', 'b']]

#is  ==  与深浅copy 的具体讲解请看python基础学习day6


#解本问题有多种方法,此方法并不是标准答案,读者可以自己尝试各种方法。

实列补充题:

'''从cars中找到local中每个省份的车牌号有几个,打印出类似于{'山东': 2, '北京': 1, '黑龙江': 2, '上海': 1}这样的字典'''
'''方法一'''
dic = {}
cars = ['鲁A32444','鲁B22444','京B8989M','黑C49678','泸B25041','黑C49671']
locals = {'泸':'上海','黑':'黑龙江','鲁':'山东','鄂':'湖北','湘':'湖南','京':'北京'}
for car in cars:
    for key,value in locals.items():
        if car.startswith(key):
            try:
                dic[value] += 1
            except:
                dic[value] = 1
            continue
print(dic)
'''方法二'''
for car in cars:
    if locals[car[0]] not in dic:
        dic[locals[car[0]]] = 1
    else:
        dic[locals[car[0]]] += 1
print(dic)

'''方法三'''
for car in cars:
    dic[locals[car[0]]] = dic.get(locals[car[0]],0) + 1
print(dic)
#详细的dict操作方法请看python基础学习day5

如果你喜欢我的文章,请滑到下方点个推荐再走.

以给我动力哦;转载请注名出处。然后..请多来做客鸭。

posted @ 2020-03-19 20:01  虫萧  阅读(204)  评论(0编辑  收藏  举报