python中列表中的列表中的列表

python中列表中的列表中的列表,python,Python,我写了这个,但我不明白为什么它不起作用。顺便说一句,我是编程的初学者 fav_colours=[["bob"["likes:blue, hates:red"]],["john"["likes:red,hates:black"]], ["adam"["likes:purple,hates:pink"]]] print fav_colours 我认为没有任何错误。提前谢谢。您需要用逗号分隔每个列表项,因此[“bob”[“喜欢:蓝色,讨厌:红色”]应该是[“bob”,[“喜欢:蓝色,讨厌:红色”

我写了这个,但我不明白为什么它不起作用。顺便说一句,我是编程的初学者

fav_colours=[["bob"["likes:blue, hates:red"]],["john"["likes:red,hates:black"]],  
["adam"["likes:purple,hates:pink"]]]
print fav_colours

我认为没有任何错误。提前谢谢。

您需要用逗号分隔每个列表项,因此
[“bob”[“喜欢:蓝色,讨厌:红色”]
应该是
[“bob”,[“喜欢:蓝色,讨厌:红色”]


而且看起来你可能需要使用一个
dict
而不是那些内部列表。
{“likes”:“blue”}

除了Russell Dias的答案:

拥有多个嵌套列表会让你陷入困境,例如,如果你想

  • 访问特定人员的数据。例如,如果您想要John的数据,您必须知道John在列表中有索引1
  • 检查是否有人存在->您必须遍历整个列表并对其进行比较。如果您希望避免重复,则同样计算
要处理这些问题,您可以用字典替换外部列表。此外,我假设like和hate部分应该是分开的字符串:

>>> fav_colours_dict = { "bob" : ["likes:blue", "hates:red"],
... "john" : ["likes:red", "hates:black"],
... "adam" : ["likes:purple", "hates:pink"] }

>>> print fav_colours_dict["john"]
['likes:red', 'hates:black']


接下来要注意的是,您可能只对颜色字符串感兴趣,比如没有“喜欢:”或“讨厌:”前缀的“蓝色”。事实上,仅在列表位置,您就已经有了这些信息,因为0索引“喜欢”,1索引“讨厌”。此外,由于没有进一步的位置,最好使用
()
将颜色列表更改为元组

因此,字典更改为:

>>> fav_colours_dict = { "bob" : ("blue", "red"),
... "john" : ("red", "black"),
... "adam" : ("purple", "pink")}
现在是布景

>>> likes, hates = range(2)    # likes = 0, hates = 1
您可以使用以下选项从adam访问“喜欢”颜色:

>>> print fav_colours_dict["adam"][likes]
purple

如果您想为喜欢或讨厌的颜色添加多种颜色,最好的方法是使用集合,使用
{}
。这样可以确保不会重复使用任何颜色:

>>> fav_colours_dict = { "bob" : ({"blue", "yellow"}, {"red"}),
>>> ... "john" : ({"red"}, {"black", "green"}),
>>> ... "adam" : ({"purple", "black"}, {"pink"}) }

>>> print fav_colours_dict
{'bob': (set(['blue', 'yellow']), set(['red'])), 'john': (set(['red']),
set(['black', 'green'])), 'adam': (set(['purple', 'black']), set(['pink']))}
看到上面的输出,您可能需要更好的打印:

>>> for person, colours in fav_colours_dict.iteritems():
...     print person
...     print "- likes: " + ", ".join(colours[likes])
...     print "- hates: " + ", ".join(colours[hates])
...
bob
- likes: blue, yellow
- hates: red
john
- likes: red
- hates: black, green
adam
- likes: purple, black
- hates: pink

最后,您使用了python最常见的数据结构:字典、元组和集合