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
如果你喜歡我的文章,請滑到下方點個推薦再走.
以給我動力哦;轉載請注名出處,然后..請多來做客鴨,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/170372.html
標籤:Python
上一篇:Python學習筆記(七)字典
