方案中的对和python中的元组之间的区别?

时间:2013-01-29 02:46:53

标签: python scheme

在Scheme中,如果您有一对配对列表,例如:

((4 . 7) (4 . 9))

这基本上不是2元素元组的列表吗?所以如果你在python中写这个,那就像是:

[[4, 7], [4,9]][(4, 7), (4,9)]

我希望它尽可能接近python。或者创建一个课程更接近?

2 个答案:

答案 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)

:)