我想在csv文件的开头添加一个新列,我想迭代遍历每一行,只是将包含我新列的内容的列表添加到一起,旧列表就可以了,它确实有效,但它只适用于循环内部。为什么这样做?
文件:
column1 column2 column3
x1 y1 z1
x2 y2 z2
预期输出:
0 column1 column2 column3
0 x1 y1 z1
0 x2 y2 z2
代码:
import csv
x = open('C:/Documents and Settings/admin/Desktop/sample.csv')
y = csv.reader(x)
z = []
for row in y:
z.append(row)
for n in z:
n = ['0'] + n
print(n)
for m in z:
print(m)
我得到了什么:
[0, column1, column2, column2]
[0, x1, y1, z1]
[0, x2, y2, z2]
[column1, column2, column2]
[x1, y1, z1]
[x2, y2, z2]
零点基本上消失在该循环之外。为什么?
谢谢!
答案 0 :(得分:1)
特殊"故障"你看到的是因为范围界定的结果。即使您的第一个循环将n
设置为['0'] + n
,它也只会在该循环的范围内发生,而不会更改z
。
您可以做的是创建一个新列表并将新n
添加到该列表中:
new_list = []
for n in z:
n = ['0'] + n
new_list.append(n)
for m in new_list:
print(m)
答案 1 :(得分:0)
如果在更改行时更改z,则可以实现此目的
import csv
x = open('C:/Documents and Settings/admin/Desktop/sample.csv')
y = csv.reader(x)
z = []
for row in y:
z.append(['0'] + row)
print(z)
for m in z:
print(m)