zoukankan      html  css  js  c++  java
  • wtfpython阅读笔记

    A tic-tac-toe where X wins in the first attempt!/一蹴即至!

    # 我们先初始化一个变量row
    row = [""]*3 #row i['', '', '']
    # 并创建一个变量board
    board = [row]*3

    输出结果:

    >>> board
    [['', '', ''], ['', '', ''], ['', '', '']]
    >>> board[0]
    ['', '', '']
    >>> board[0][0]
    ''
    >>> board[0][0] = "X"
    >>> board
    [['X', '', ''], ['X', '', ''], ['X', '', '']]

    当我们初始化 row 变量时, 下面这张图展示了内存中的情况:

    而当通过对 row 做乘法来初始化 board 时, 内存中的情况则如下图所示 :(每个元素 board[0]board[1] 和 board[2] 都和 row 一样引用了同一列表.)

     

    我们可以通过不使用变量 row 生成 board 来避免这种情况:

    >>> board = [['']*3 for _ in range(3)]
    >>> board[0][0] = "X"
    >>> board
    [['X', '', ''], ['', '', ''], ['', '', '']]

    还可以利用迭代新建一个列表来避免:

    >>> board = [] 
    >>> for i in range(3): 
    >>>     row=['_'] * 3 
    >>>     board.append(row) 
    >>> board 
    [['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']] 
    >>> board[2][0] = 'X' 
    >>> board  
    [['_', '_', '_'], ['_', '_', '_'], ['X', '_', '_']]
  • 相关阅读:
    Zuul
    熔断机制
    跨域问题
    过滤器
    从Ftp下载某一文件夹下的所有文件(三)
    java操作Ftp文件的一些方式(一)
    Java代码实现FTP单个文件下载(二)
    一些order
    Spring Boot
    利用dubbo服务对传统工程的改造
  • 原文地址:https://www.cnblogs.com/wjw2018/p/10640105.html
Copyright © 2011-2022 走看看