Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中与列表和字典的关系_Python_Python 2.7_Class_Object - Fatal编程技术网

python中与列表和字典的关系

python中与列表和字典的关系,python,python-2.7,class,object,Python,Python 2.7,Class,Object,我正在通过Zed A Shaw的“艰苦学习python”学习python 我现在被这个问题弄糊涂了 创建一些新的关系,这些关系是列表和字典,这样您也可以拥有“有很多”关系 谁能解释一下,给我举几个例子吗 编辑 这是链接 X到Y的关系通常意味着X中的每个元素都与Y中的许多(零个或多个)元素相关联。因此,您可以构建一个字典,将X中的元素映射到Y的列表 例如,如果我们想知道一个人(X)拥有什么(Y): 爱丽丝有一台笔记本电脑和一所房子。(2) 鲍勃只有一个游戏机,(3)克里斯有一匹小马,(4)浮游生物

我正在通过Zed A Shaw的“艰苦学习python”学习python

我现在被这个问题弄糊涂了

创建一些新的关系,这些关系是列表和字典,这样您也可以拥有“有很多”关系

谁能解释一下,给我举几个例子吗

编辑 这是链接

X到Y的关系通常意味着X中的每个元素都与Y中的许多(零个或多个)元素相关联。因此,您可以构建一个字典,将X中的元素映射到Y的列表

例如,如果我们想知道一个人(X)拥有什么(Y):


爱丽丝有一台笔记本电脑和一所房子。(2) 鲍勃只有一个游戏机,(3)克里斯有一匹小马,(4)浮游生物一无所有。

当然;我教过编程,包括这些材料。每个字典条目都包含一个值列表,而不仅仅是一个值。例如:

 Children = 
    {"Marianne": ["Eduardo", "Shibani", "Ted",
     "Stephan":  ["Marianne"],
     "Ted":      ["Winken", "Blinken", "Nod"]
    }
这是一个简单的父母列表,列出了每个孩子的名字。在这种情况下,您还可以编写代码来查看家谱的一部分:Stephan是Ted和另外两个孩子的祖父。

要上下文化: 在本书的练习42中,我们将以艰苦的方式学习Python,学习类和对象。 autor-Zed Shaw给了我们下面的代码,我们必须对类和对象进行注释。 当我们谈论对象和类通过类关系相互关联时,必须使用“is-a”。当我们谈论仅仅因为相互“引用”而相关的对象和类时,我们使用“has-a”

因此,代码和我的评论:

## Animal is-a object
class Animal(object):
    pass

## Dog is-a Animal
class Dog(Animal):

    def __init__(self,name):
        ## Dog has-a name
        self.name = name

## Cat is-a Animal
class Cat(Animal):

    def __init__(self, name):
        ## Cat has-a name
        self.name = name

## Person is-a object
class Person(object):

    def __init__(self, name):
        ## Person has-a name
        self.name = name

        ## Person has-a pet of some kind
        self.pet = None

## Employee is-a Person
class Employee(Person):

    def __init__(self, name, salary):
        ## Employee has-a name (coming from Person, because Employee is-a Person)
        super(Employee, self).__init__(name)
        ## Employee has-a salary
        self.salary = salary

## Fish is-a object
class Fish(object):
    pass

## Salmon is-a Fish
class Salmon(Fish):
    pass

## Kalibut is-a Fish:
class Halibut(Fish):
    pass


## Rover is-a Dog
rover = Dog("Rover")

## Satan is-a Cat
satan = Cat("Satan")

## Mary is-a Person
mary = Person("Mary")

## Mary has-a pet "Satan"
mary.pet = satan

# Frank is-a Employee that has-a salary
frank = Employee("Frank", 120000)

## Frank has-a pet "Rover"
frank.pet = rover

## flipper is-a fish
flipper = Fish()

## crouse is-a Salmon
crouse = Salmon()

## harry is-a Halibut
harry = Halibut
在其中一个研究练习中,自动告诉我们“建立一些新的关系,如列表和字典,这样你也可以拥有”有很多“关系”

例如:

## Mary is-a Person
mary = Person("Mary")

## Mary has-a pet "Santan"
mary.pet = santan
但是玛丽可以养不止一只宠物,对吗?因此:

## Mary has-many pets: "Santan" and "Rover"
mary.pet = [santan, rover]  # has-many with list
或者,您可以使用字典,因此:

## Mary has-many pets: Satan (is-a cat) and rover (is a dog)
mary.pet =  {'cat': satan, 'dog': rover}  # has-many with dictionary

现在每个人都能理解问题的上下文。

如果你能发布一个链接,我们会发现字典通常可以表示一种“关系”,其中一个
映射到一个
,这将对你大有帮助。如果
字典
有一个或多个
,每个键映射到一个
列表
,其中包含多个
,则“has many”关系可能会起作用–1仅用于使用LPTHW@wim尽管你的声望高得离谱,但我不认为不喜欢教材是否决这个问题的正当理由(即使只是一个笑话)。@wim好吧,也许你可以解释为什么你不喜欢LPTHW作为教材。我确实同意有比LPTHW好得多的书,但这并不能真正帮助OP投反对票。“克里斯什么都没有。”-可怜的我:-(@ChristianDean:我给了你一匹小马。快乐?:),但小马会这样做:-)出于好奇:“本材料”指的是“一对多通信”还是“艰苦学习python”?是“一对多”:父母(dict键)是“一”;孩子们(dict值,如列表)是“许多人”。“对于正在阅读这本书的人来说,也许会更容易理解”也许会包括更多,这样人们就不会迷路?什么是
santan
rover
?你现在在想什么?我试图给出一个好的背景,展示这本书给了我们什么,它要求我们什么。是的,更清楚!那么代码是从源代码中获取的,您刚刚添加了注释?我得说这看起来很奇怪。如果我们遵循它,鱼不是动物,因此不能有名称^^^’……是的,代码是给我们的,我们只是添加注释。我不认为代码是功能性的,也许autor只是想告诉我们,在python的代码中,带有(object)的类是正常的。但当然,鱼也可以是动物,因此有了名字。
## Mary has-many pets: Satan (is-a cat) and rover (is a dog)
mary.pet =  {'cat': satan, 'dog': rover}  # has-many with dictionary