我有两个CSV文件。一:
s555555,7
s333333,10
s666666,9
s111111,10
s999999,9
还有两个:
^{pr2}$我想以:
[['s111111', '10', '', '', '', ''],
['s222222', '', '', '', '', ''],
['s333333', '10', '', '', '', ''],
['s444444', '', '', '', '', ''],
['s555555', '7', '', '', '', ''],
['s666666', '9', '', '', '', ''],
['s777777', '', '', '', '', '']]
我的代码是:
new_marks = get_marks_from_file('assign1_marks.csv')
marks = get_marks_from_file('marks.csv')
def merge_marks(all_marks, new_marks, column):
for n in range(len(new_marks)):
for a in range(len(all_marks)):
if all_marks[a][0]==new_marks[n][0]:
all_marks[a][column]= new_marks[n][column]
return marks
我做错什么了?我一直得到:
>>> merge_marks(marks, new_marks, 1)
[['s111111', '', '', '', '', ''],
['s222222', '', '', '', '', ''],
['s333333', '', '', '', '', ''],
['s444444', '', '', '', '', ''],
['s555555', '7', '', '', '', ''],
['s666666', '', '', '', '', ''],
['s777777', '', '', '', '', '']]
线
必须被三个级别取消缩进,才能从for循环和if语句中取出。现在它将返回它找到的第一个
all_marks[a][0]==new_marks[n][0]
匹配项,而不会替换其他匹配项。在您还希望返回}碰巧是相同的,并且也发生了更改,但是如果您使用一个名为任何其他名称的变量来调用它,它将失败。在
all_marks
,而不是marks
:在这种情况下,全局变量{因此,解决方案是:
^{pr2}$相关问题 更多 >
编程相关推荐