首页 > 编程语言 > 详细

Python之第六天的努力--深浅copy

时间:2020-06-06 22:22:55      阅读:41      评论:0      收藏:0      [点我收藏+]

01.深浅copy

1.赋值运算

# 赋值运算
l1 = [1,2,3,[22,33]]
l2 = l1
l1.append(666)
print(l1)
print(l2)

技术分享图片

技术分享图片

2.浅copy:copy一个外壳

# 浅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]))

技术分享图片

技术分享图片

3.深copy

# 深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)

技术分享图片

技术分享图片

4.

#
l1 = [1,2,3,[22,33]]
l2 = l1[:]
l1[-1].append(666)
print(l1)
print(l2)
# 浅copy:  list  dict: 嵌套的可变的数据类型是同一个
# 深copy:  list  dict: 嵌套的可变的数据类型不是同一个

技术分享图片

02.一个程序练习:

# 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(‘您输入有误,请重新输入‘)

Python之第六天的努力--深浅copy

原文:https://www.cnblogs.com/szheng/p/13056654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!