【python笔记】浅拷贝和深拷贝

浅层与深层复制的区别仅与复合对象(即包含列表或类的实例等其他对象的对象)相关:

  • 浅层复制 构造一个新的复合对象,然后(在尽可能的范围内)将原始对象中找到的对象的 引用 插入其中。

  • 深层复制 构造一个新的复合对象,然后,递归地将在原始对象里找到的对象的 副本 插入其中。

制作字典的浅层复制可以使用 dict.copy() 方法;

列表的浅层复制可以通过赋值整个列表的切片完成,例如,copied_list = original_list[:]

        col, row = 0, 0
        visited = [[False] * n] * m
        visited[row][col] = True

以上操作,得到visited的每一行第一个元素都是True。
但是如果是下面语句,

        visited = [[False] * n for _ in range(m)]

这样定义出来的visited,在第一段代码结束后,只有索引[0][0]的元素是True。
暂时不知道为什么会这样,先记一下。

【栈】
以下是《Python数据结构与算法》的学习笔记,并非原创。

判断括号是否匹配
```python
from collections import deque

def parChecker(symbolString):
    s = deque()
    balanced = True
    index = 0
    while index < len(symbolString) and balanced:
        symbol = symbolString[index]
        if symbol == '(':
            s.append(symbol)
        else:
            s.pop()
        index += 1

    if balanced and not s:
        return True
    else:
        return False

if __name__ =="__main__":
    symbolString = "()"
    print(parChecker(symbolString))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值