Python踩坑系列-20190803

本文介绍如何正确初始化一个二维列表,并避免常见的引用错误。通过实例对比,展示了正确的拷贝方法与错误的引用复制的区别。

关于声明并初始化二维列表

想要快速创建一个二维列表如: 5x3的二维列表 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
正确用法:

# 先创建一个一维列表 
tmp = [0, ] * 3
result = []
for i in range(5):
	# 拷贝对象
	result.append(tmp.copy())
result[0][1] = 1
print(result)
# [[0, 1, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

误用:

# 得到的是一维列表的引用
result = [[0, ] * 3, ] * 5
result[0][1] = 1
print(result)
# [[0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0], [0, 1, 0]]


### 三级标题:Python环境配置最佳实践 Python环境配置是开发过程中不可或缺的一环,尤其是在跨平台开发或团队协作中,确保环境一致性尤为重要。以下是一些最佳实践和常见问题的解决方案。 #### 安装Python解释器 - 从[Python官网](https://www.python.org/)下载最新稳定版安装包,并按照向导完成安装过程。对于Windows用户,建议在安装时勾选“Add Python to PATH”选项以自动配置环境变量[^1]。 - 安装完成后,可以通过命令行输入 `python --version` 来验证是否安装成功。 #### 环境变量配置 - 在Windows系统下,通过“控制面板 > 系统和安全 > 系统 > 高级系统设置”进入环境变量设置界面。找到系统变量中的`Path`,将Python的安装路径(例如`C:\Python39\`)添加到其中[^3]。 - Ubuntu用户通常不需要手动配置环境变量,因为使用包管理器安装时会自动处理这些设置。 #### 使用虚拟环境 - 创建隔离的开发环境可以避免不同项目之间的依赖冲突。使用标准库中的`venv`模块创建虚拟环境: ```bash python -m venv myenv ``` 激活虚拟环境后,所有通过`pip`安装的包都会被放置在这个环境中。 - 对于更复杂的项目管理和多版本Python支持,推荐使用`pyenv`结合`virtualenv`或者`Poetry`进行环境管理。 #### 包管理工具 - `pip`是Python的默认包管理器,而`pip3`则是专门用于Python 3.x系列的版本。两者的主要区别在于它们默认关联的Python解释器版本。 - 修改pip源可以帮助加速国内用户的下载速度,可以通过编辑或创建pip.conf文件来更改默认源地址。 - 常用命令如`pip freeze > requirements.txt`用于导出当前环境的所有依赖及其版本号;`pip list`则显示已安装的包列表。如果发现`pip list`显示的版本与实际导入模块的版本不一致,可能是由于激活了错误的虚拟环境或存在多个Python版本导致的。 #### Anaconda配置 - Anaconda是一个流行的Python数据科学发行版,它自带了conda这一强大的包管理和环境管理工具。通过conda,用户能够轻松创建、管理和切换不同的虚拟环境。 - 设置Jupyter Notebook的默认工作目录需要生成并修改其配置文件,可以通过运行`jupyter notebook --generate-config`生成配置文件,然后编辑该文件中的`c.NotebookApp.notebook_dir`参数来指定新的工作目录。 #### 常见问题及解决方法 - 如果遇到`pip list`显示的包版本与`import`导入的包版本不一致的问题,首先检查当前使用的Python解释器路径是否正确,以及相关的环境变量设置。 - 当使用PyCharm等IDE时,确保选择了正确的Python解释器,并且启用了调试模式。若问题依旧存在,尝试重启IDE并重新配置相关选项[^2]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值