我一直试图复制一个三维阵列,但似乎无论我做什么;修改副本,也修改原件
我已经尝试了许多关于this问题的建议
有人能解释一下为什么这段代码在被复制之后要修改Clients数组,以及如何避免这种情况吗
##### This block is to get and save the information
import csv
import datetime
import glob
import os
#import copy
from datetime import timedelta
list_of_files = glob.glob(r'U:\UEL\Sales and Marketing\Relationship - Sales\Team\Edinburgh Clients\Portal backups\Full export archive\*.csv') # * means all if need specific format then *.csv
latest_file = max(list_of_files, key=os.path.getctime)
with open(latest_file, newline='') as csvfile:
data = list(csv.reader(csvfile))
Vheaders = data[0]
data.pop(0)
Clients = list(set(list(zip(*data))[9]))
i = 0
for line in Clients:
Clients[i] = [Clients[i]]
i = i + 1
Voids = []
CoTs = []
for row in Clients:
Voids.append(row)
for row in Clients:
CoTs.append(row)
#Voids = list(Clients) #This creates an array of arrays, an array of voids for each client
#CoTs = list(Voids) #Same as above for CoTs
#import pdb
#pdb.set_trace()
i = 0
for row in Clients:
for line in data:
#if line[0] == '443179':
#import pdb
#pdb.set_trace()
if (datetime.date.today() - timedelta(days=7)) <= datetime.datetime.strptime(line[2], "%d/%m/%Y").date() < datetime.date.today():
if line[9] == row[0]:
Voids[i].append(line)
else:
pass
else:
pass
i = i + 1
你需要一个deepcopy。 Python中的赋值语句不复制对象,而是在目标和对象之间创建绑定。对于可变或包含可变项的集合,有时需要一个副本,以便一个可以更改一个副本而不更改另一个副本。”
相关问题 更多 >
编程相关推荐