我必须定义一个函数: add_info(new_info, new_list) 采用一个包含四个元素的元组,其中包含一个人的信息和一个新列表。如果此人的姓名不在列表中,则使用新人的信息更新列表并返回 True 以表示操作成功。否则,将打印错误,列表不变并返回 False。
例如:
>>>d = load_file(’people.csv’)
>>>d
[(John’, ’Ministry of Silly Walks’, ’5555’, ’27 October’),
(’Eric’, ’Spamalot’, ’5555’, ’29 March’)]
>>>add_info((’John’, ’Cheese Shop’, ’555’, ’5 May’), d)
John is already on the list
False
>>>d
[(John’, ’Ministry of Silly Walks’, ’5555’, ’27 October’),
(’Eric’, ’Spamalot’, ’5555’, ’29 March’)]
>>>add_info((’Michael’, ’Cheese Shop’, ’555’, ’5 May’), d)
True
>>>d
[(John’, ’Ministry of Silly Walks’, ’5555’, ’27 October’),
(’Eric’, ’Spamalot’, ’5555’, ’29 March’),
(’Michael’, ’Cheese Shop’, ’555’, ’5 May’)]
到目前为止,我的代码如下所示:
def load_file(filename):
with open(filename, 'Ur') as f:
return list(f)
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write('\n'.join(new_list) + '\n')
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write(line + '\n' for line in new_list)
def save_file(filename, new_list):
with open(filename, 'w') as f:
for line in new_list:
f.write(line + '\n')
def add_info(new_info, new_list):
name = new_info
for item in new_list:
if item == name:
print str(new_info) , "is already on the list."
return False
else:
new_list.append(new_info)
return True
每当我输入一个已经在列表中的名称时,它只会将该名称添加到列表中。不知道该怎么办。有任何想法吗?
提前致谢!