请检查下面的代码并进行必要的更正。它给了我一个错误信息。
作业如下所示。
创建一个执行以下操作的函数{{1}
接受
manipulate_data
作为第一个参数,指定要使用的数据结构string
,list
或set
根据指定的数据结构接受要操作的数据的第二个参数,例如
dictionary
数据结构的[1, 4, 9, 16, 25]
- 醇>
基于第一个参数
- 返回列表的反向或
- 将项
list
,"ANDELA"
和"TIA"
添加到集合中并返回结果集- 返回字典的键。
我的解决方案代码如下:
"AFRICA"
我不知道我是否有意义。收到的错误消息是:
def manipulate_data(argument1, argument2):
if argument1 == "list":
argument2.reverse()
return argument2
if argument1 == "set":
argument2.add("ANDELA")
argument2.add("TIA")
argument2.add("AFRICA")
return argument2
if argument1 == "dictionary":
argument2.keys()
return argument2
和
Total Specs: 3 Total Failures: 2
test_manipulate_dictionary
Failure in line 23, in test_manipulate_dictionary self.assertEqual(result, ["grapes", "mangoes", "apples", "oranges"], msg = "Dictionary not manipulated correctly") AssertionError: Dictionary not manipulated correctly
答案 0 :(得分:1)
您走在正确的轨道上但我认为您在dict
和set
的情况下错误地将参数传递给您的函数,因为默认情况下{}
表示字典
这样的事情:
def manipulate_data(argument1, argument2):
if argument1 == "list":
argument2.reverse()
return argument2
if argument1 == "set":
argument2.update(["ANDELA", "TIA", "AFRICA"])
return argument2
if argument1 == "dictionary":
return argument2.keys()
print(manipulate_data('list', [1,2,3,4,5,6]), manipulate_data('set', {1,2,3,4,5,6}), manipulate_data('dictionary', {1:2,3:4,5:6}), sep='\n')
输出:
$ python3 a.py
[6, 5, 4, 3, 2, 1]
{'ANDELA', 1, 2, 3, 4, 5, 6, 'TIA', 'AFRICA'}
dict_keys([1, 3, 5])
$
答案 1 :(得分:0)
def manipulate_data(argument1, argument2):
if argument1 == "list":
if isinstance(argument2, list):
argument2.reverse()
return argument2
if argument1 == "set":
if isinstance(argument2, set):
argument2.add("ANDELA")
argument2.add("TIA")
argument2.add("AFRICA")
return argument2
if argument1 == "dictionary":
if isinstance(argument2, dict):
return argument2.keys()
l = [1,2,3]
d = {'a':1, 'b':2, 'c':3 }
s = set()
s.add(1)
s.add(2)
s.add(3)
print manipulate_data("list", l)
print manipulate_data("dictionary", d)
print manipulate_data("set", s)
答案 2 :(得分:0)
def manipulate_data(arg1, arg2):
if arg1 == "list":
arg2.reverse()
return arg2,type(arg2)
#http://stackoverflow.com/questions/15768757/how-to-construct-a-set-out-of-list-items
if arg1 == "set":
myset=set(arg2)
myset.add("ANDELA")
myset.add("TIA")
myset.add("AFRICA")
return myset,type(myset)
if arg1 == "dictionary":
mydict={}
for l in arg2:
mydict[l]=l
return mydict.keys(),type(mydict)
print manipulate_data("list",[1, 4, 9, 16, 25])
print manipulate_data("set",[1, 4, 9, 16, 25])
print manipulate_data("dictionary",[1, 4, 9, 16, 25])
输出:
([25, 16, 9, 4, 1], <type 'list'>)
(set([1, 4, 9, 'AFRICA', 16, 25, 'TIA', 'ANDELA']), <type 'set'>)
([16, 1, 4, 25, 9], <type 'dict'>)