Python:为什么更新复制列表后我的原始列表受到影响 - python

twoSeq=[['28.406925,77.285590', '28.409969,77.292279'],
    ['28.406925,77.285590', '28.402476,77.292956'],
    ['28.409969,77.292279', '28.403020,77.298851'],
    ['28.403020,77.298851', '28.392363,77.306091'],
    ['28.392363,77.306091', '28.378515,77.313990'],
    ['28.378515,77.313990', '28.367469,77.315308'],
    ['28.402476,77.292956', '28.399600,77.297313'],
    ['28.402476,77.292956', '28.397301,77.294096'],
    ['28.399600,77.297313', '28.392247,77.301909'],
    ['28.392247,77.301909', '28.392363,77.306091'],
    ['28.397301,77.294096', '28.399600,77.297313']]

def N_Seq(twoSeq):
    first=twoSeq.copy()
    last=twoSeq.copy()

    for i in range(len(first)):
        first[i].pop(0)
    print(first,"--------")
    for j in range(len(last)): 
        last[j].pop() 
    print(first)
N_Seq(twoSeq)

输出:

[['28.409969,77.292279'], ['28.402476,77.292956'], ['28.403020,77.298851'], ['28.392363,77.306091'], ['28.378515,77.313990'], ['28.367469,77.315308'], ['28.399600,77.297313'], ['28.397301,77.294096'], ['28.392247,77.301909'], ['28.392363,77.306091'], ['28.399600,77.297313']] --------
[[], [], [], [], [], [], [], [], [], [], []]

python参考方案

list.copy创建列表的浅表副本。这意味着它将创建一个新列表,并将对项目的引用插入其中。在这种情况下,您应该使用copy.deepcopy,它返回一个深层副本。
从文档中:

浅复制和深复制之间的区别仅与复合对象有关
(包含其他对象的对象,例如列表或类实例):

浅表副本构造一个新的复合对象,然后(在可能的范围内)
将引用插入到原始对象中。

深层副本构造一个新的复合对象,然后递归插入副本
放入原始对象中。

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python:同时在for循环中添加到列表列表 - python

我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…