有人请看看我的Python语法?

时间:2016-01-14 22:47:53

标签: python function oop data-structures

有人可以向我解释我的代码中缺少什么吗?我一直在寻找互联网上的解决方案,我发现了一个模板,我认为这是正确的,但它仍然给我错误。谁知道我做错了什么?

  
      
  • 创建一个执行以下操作的函数manipulate_data:

  •   
  • 接受指定要使用“list”,“set”或“dictionary”的数据结构的字符串作为第一个参数。   接受基于指定的数据结构(例如[1,4,9,16,25])对列表数据结构进行操作的数据的第二个参数。

  •   
  • 基于第一个参数返回列表的反向,或者将项"ANDELA""TIA""AFRICA"添加到集合中,或将结果集作为键返回字典。

  •   
def manipulate_data(kind, data):
    if kind == "list":
        for data in [1, 4, 9, 16, 25]:
            return data.reverse()

    elif kind == "set":
        for data in {"f", "g", "h", "i", "j"}:
            data.add("ANDELA")
            data.add("TIA")
            data.add("AFRICA")
            return data

    elif kind == "dictionary":
        for data in  {"nissan": 23, "audi": 15, "mercedes": 3, "volvo": 45}:
            return data.key()

2 个答案:

答案 0 :(得分:1)

看起来您已经进行了课堂练习,根据其类型对数据进行不同的操作。我要做的第一件事就是抛出"类型"参数,因为它很容易找出像Python这样的语言的类型。您的解决方案硬编码本应作为"数据"传入的数据。参数。做出这些修复,我们得到类似的结果:

def manipulate_data(data):
    if type(data) is list:
        data.reverse()
        return data
    elif type(data) is set:
        data.add("ANDELA")
        data.add("TIA")
        data.add("AFRICA")
        return data
    elif type(data) is dict:
        return data.keys()
    return data  # just return anything else

我们可以通过传递三种不同类型的数据进行测试:

>>> manipulate_data([1, 4, 9, 16, 25])
[25, 16, 9, 4, 1]
>>> 
>>> manipulate_data({"f", "g", "h", "i", "j"})
{'h', 'f', 'AFRICA', 'ANDELA', 'g', 'i', 'TIA', 'j'}
>>> 
>>> manipulate_data({"nissan": 23, "audi": 15, "mercedes": 3, "volvo": 45})
dict_keys(['audi', 'volvo', 'mercedes', 'nissan'])
>>> 

return data.reverse()这样的语句没有意义,因为.reverse()方法修改了它的对象,这些方法通常不会返回任何内容。执行此行的另一种方法是return reversed(data),它会复制和反转数据,而不是更改原始数据。

答案 1 :(得分:1)

这个问题根据问题起作用,该函数只涉及2个参数:

def manipulate_data(data_type=None, data=None):
    if data_type is 'list':
        return data[-1::-1]
    if data_type == 'set':
        return set.union(data, ["ANDELA", "TIA", "AFRICA"])
    if data_type == 'dict':
        return [key for key, item in data.items()]