在Scheme中,如果您有一对配对列表,例如:
((4 . 7) (4 . 9))
这基本上不是2元素元组的列表吗?所以如果你在python中写这个,那就像是:
[[4, 7], [4,9]]
或[(4, 7), (4,9)]
?
我希望它尽可能接近python。或者创建一个课程更接近?
答案 0 :(得分:2)
在Scheme术语中,将对称作为双元素元组是没有意义的,因为这意味着在Scheme中存在三元素元组或四元素元组这样的东西,但是没有。
那说最接近Scheme对的Python概念确实是一个双元素元组。对列表绝对不同于列表列表。
哦,回答你在标题中隐含的问题:
在Scheme中,列表是空列表(()
)或第二个元素是列表的对。所以每个列表都是一对,但有些对不是列表。例如,(1 . (2 . ()))
对是一个列表(更常见的是(1 2)
),但(1 . 2)
对不是列表,因为2
不是列表。
这些都不适用于Python。 Python列表是可增长的数组 - 不是由对/元组组成的链表。
答案 1 :(得分:0)
在scheme(pair)和python(tuple)中存在许多差异,就像元组是不可变的而其他的不是,当它不是一对但是tuple可以用一个值(x,)等等时,对返回0。
阅读:http://www.tutorialspoint.com/python/python_tuples.htm(对于python) http://www.gnu.org/software/guile/manual/html_node/Pairs.html(对于Scheme)
:)