在Scheme中,如果您有一个配对列表,例如:
((4 . 7) (4 . 9))
这不就是一个包含2个元素元组的列表吗?所以如果你用python写这段代码,它会是这样的吗:
[[4, 7], [4,9]]还是[(4, 7), (4,9)]?
我希望它尽可能地接近python。或者创建一个类会更接近吗?
发布于 2013-01-29 10:50:24
在Scheme术语中,将对称为两个元素的元组是没有意义的,因为这意味着Scheme中有三个元素的元组或四个元素的元组,但实际上没有。
也就是说,最接近Scheme对的Python概念实际上是一个由两个元素组成的元组。配对列表绝对不同于列表列表。
哦,为了回答你在标题中暗示的问题:
在Scheme中,列表可以是空列表(()),也可以是第二个元素是列表的对。所以每个列表都是一个对,但有些对不是列表。例如,(1 . (2 . ()))对是一个列表(通常写成(1 2)),但(1 . 2)对不是列表,因为2不是列表。
所有这些都不适用于Python。Python列表是可增长的数组,而不是由对/元组组成的链表。
发布于 2013-01-29 11:20:54
方案(对)和python(元组)有很多不同之处,比如元组是不变的,而其他元组不是,当它不是对但元组可以包含一个值(x,)时,pair返回0,以及更多。
阅读:http://www.tutorialspoint.com/python/python_tuples.htm (用于python) http://www.gnu.org/software/guile/manual/html_node/Pairs.html (用于方案)
:)
https://stackoverflow.com/questions/14574836
复制相似问题