python 正确复制list,克隆list 的各种方案
推荐4种方法
---------------------------------------------------------------
方法一:extend
L = [1, 2, 3] List_1 = []
List_1.extend(L) print('List_1 =', List_1)
解释:新建一个空List,然后将L中所有的元素用extend的方法放入List_1中
方法二:切片
L = [1, 2, 3]
List_2 = L[:]
print('List_2 =', List_2)
解释:取L的切片,然后赋值给List_2即可
方法三:拆包(*)
L = [1, 2, 3]
List_3 = [*L]
print('List_3 =', List_3)
解释:将L中的元素拆分,然后放入一个list中,再然后赋值给List_3
方法四:用乘法
L = [1, 2, 3]
List_4 = L * 1
print('List_4 =', List_4)
解释:数字1就是将L中的元素重复显示1次
其他方法的话,并不是太推荐,因为效率不高
---------------------------------------------------------------
比如大家喜闻乐见的append方法,效率低下(不推荐)
L = [1, 2, 3] List_5 = []
for e in L:
List_5.append(e) print('List_5 =', List_5)
或者更加pythonic的列表推导(可以用,显得高大上)
L = [1, 2, 3] List_6 = [e for e in L]
print('List_6 =', List_6)
又或者引入标准库中的模块(没必要引入模块)
from copy import deepcopy
L = [1, 2, 3]
List_7 = deepcopy(L)
print('List_7 =', List_7)
当然,重新用list进行封装也可以(这种做法还可以)
L = [1, 2, 3]
List_8 = list(L)
print('List_8 =', List_8)
python 正确复制list,克隆list 的各种方案的更多相关文章
- [Python] 正确复制列表的方法
new = old[:] Python老鸟都知道以上代码是什么意思.它复制列表old到new.它对于新手来说是种困惑而且应该避免使用这种方法.不幸的是[:]标记法被广泛使用,可能是Python程序员不 ...
- linux虚拟机系统的复制或克隆后续问题解决!
前言 加快创建hadoop或spark集群,方法有两种途径:克隆或复制.其实啊,我最近,再返回写下本博文,理清下思路. 比如,你在你的一台电脑里,安装虚拟机.已经搭建好了hadoop或spark集群. ...
- Python 列表复制
Python 列表复制 关于Python 列表的复制,有多种方法,常用的 有 赋值.切片.list.copy,copy.deepcopy等. 但是 实际用时 又有区别,不小心可能就用错了. 接下来 简 ...
- 转载 python文件复制的方法
Python复制文件的9种方法 51Testing软件测试网 17-11-1614:13 以下是演示"如何在Python中复制文件"的九种方法. 1.shutil copyfile ...
- Python批量复制和重命名文件
Python批量复制和重命名文件 示例代码 #! /usr/bin/env python # coding=utf-8 import os import shutil import time impo ...
- C#中,用HashTable,DataTable等复制和克隆浅谈
如有雷同,不胜荣欣,若转载,请注明 在C#中,用HashTable,DataTable等复制和克隆浅谈,下面直接看例子 HashTable ht = null; ht = new HashTable( ...
- C# 复制和克隆认识浅谈
如有雷同,不胜荣欣.若转载,请注明 在C#中,用HashTable,DataTable等复制和克隆浅谈,以下直接看样例 HashTable ht = null; ht = new HashTable( ...
- Python引用复制,参数传递,弱引用与垃圾回收
引用 先上个示例: >>> val = [1] >>> val[0] = val >>> val [[...]] 上述代码使val中包含自身,而产 ...
- Java——对象的复制、克隆、序列化
原创作者: https://blog.csdn.net/lmb55/article/details/78277878对象克隆(复制)假如说你想复制一个简单变量.很简单: int apples = 5; ...
随机推荐
- CF261E Maxim and Calculator (质数,完全背包)
CF261E Maxim and Calculator 题目大意: 有两个初始参数 $ a=1 $ , $ b=0 $ ,你可以对它们进行两个操作: $ b~+=1 $ 或 $ a~\times =b ...
- c++ string去除左右空格
res.substr(res.find_first_not_of(' '),res.find_last_not_of(' ') + 1)
- 内存泄露问题改进(转自vczh)
参考:http://www.cppblog.com/vczh/archive/2010/06/22/118493.html 参考:https://www.cnblogs.com/skynet/arch ...
- R list和data frame 排序
pathway_name = rownames(g1) tm <- list('P-value' = c(), 'Pathway_name' = c()) :dim(g1)[]){ result ...
- Socket网络通信编程(二)
1.Netty初步 2.HelloWorld 3.Netty核心技术之(TCP拆包和粘包问题) 4.Netty核心技术之(编解码技术) 5.Netty的UDP实现 6.Netty的WebSocket实 ...
- Linux日志管理系统rsyslog
一.日志的概念 什么是日志?日志就是历史事件.历史事件包括时间.地点.人物.时间.这个是生活中所说的日志很好理解.在Linux中也有类似的服务,它主要作用就是记录Linux系统的历史事件,包括什么时间 ...
- MySQL Password Expired
好久没有登录MySQL,登录的时候遇到如下提示: 尝试使用命令行登录,发现是可以使用之前的密码登录的,如下: 只是登录之后,发现做不了什么操作.并且使用,alter 语句重设密码也没有成功,如下: 试 ...
- git 指定从其他分支拉取commit
git cherry-pick commit-id (github 上的短号)
- Android操作系统中11种传感器的介绍【转】
本文转载自:http://www.oschina.net/question/163910_28354 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用. ...
- IBM Security App Scan Standard 工具的使用
1.AppScan是什么? AppScan是IBM的一款web安全扫描工具,可以利用爬虫技术进行网站安全渗透测试,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等. AppS ...