# 赋值运算
l1 = [1,2,3,[22,33]]
l2 = l1
l1.append(666)
print(l1)
print(l2)
# 浅copy
l1 = [1,2,3,[22,33]]
l2 = l1.copy()
l1.append(666)
print(l1,id(l1))
print(l2,id(l2))
l1 = [1,2,3,[22,33]]
l2 = l1.copy()
l1[-1].append(666)
print(l1,id(l1[-1]))
print(l2,id(l2[-1]))
# 深copy
import copy
l1 = [1,2,3,[22,33]]
l2 = copy.deepcopy(l1)
print(id(l1))
print(id(l2))
l1[-1].append(666)
print(l1)
print(l2)
#
l1 = [1,2,3,[22,33]]
l2 = l1[:]
l1[-1].append(666)
print(l1)
print(l2)
# 浅copy: list dict: 嵌套的可变的数据类型是同一个
# 深copy: list dict: 嵌套的可变的数据类型不是同一个
# 11.输出商品列表,用户输入序号,显示用户选中的商品
# 商品列表:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]
# 要求:
# 1:页面显示 序号 + 商品名称 + 商品价格,如:
# 1 电脑 1999
# 2 鼠标 10
# ...
# 2:用户输入选择的商品序号,然后打印商品名称及商品价格
# 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
# 4:用户输入Q或者q,退出程序。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}
]
while 1:
for num,dic in enumerate(goods):
print(‘{}\t{}\t{}‘.format(num + 1,dic[‘name‘],dic[‘price‘]))
choice_num = input(‘请输入商品序号:‘).strip()
if choice_num.isdecimal():
choice_num = int(choice_num)
if 0 < choice_num <= len(goods):
print(‘您选择的商品名称:{} 商品价格:{}‘.format(goods[choice_num - 1][‘name‘],goods[choice_num - 1][‘price‘]))
else:
print(‘您输入的序号超出范围,请重新输入‘)
elif choice_num.upper() == ‘Q‘:
break
else:
print(‘您输入有误,请重新输入‘)
原文:https://www.cnblogs.com/szheng/p/13056654.html