【发布时间】:2017-12-04 07:00:43
【问题描述】:
我是 C 的新手,并试图通过与 Python 的比较来学习。
我的问题是微不足道的,但我仍然需要专家的一些解释。这是一个 Python 嵌套列表结构:
L = [1, [2, [3, 4], 5], 6, [7, 8]]
这里有一段有趣的代码(取自 Lutz 的“Learning Python”),用于处理嵌套结构(求和元素):
def sumtree(L):
tot = 0
for x in L:
if not isinstance(x, list):
tot += x
else:
tot += sumtree(x)
return tot
如果我将 L 传递给这个函数,我将得到 36,这是 L 中元素的总和。 嵌套列表和这个特定函数如何准确地翻译成 C 语言?
【问题讨论】:
-
C 中的数组是固定长度的。如果你想要可变长度,你将需要一个涉及指针的结构。尝试阅读结构和链表。
-
您的问题完全合法。然而,答案是 C 不支持将“列表”作为内置结构。您必须自己发明一个“列表”,使用“结构”或“数组”等结构。
-
Python 是一种动态类型语言,与 C 有很大的不同。你不能期望 C 中的代码像 python 中那样。
-
我不期望相同的代码,我首先想要相同的结果
标签: c arrays algorithm data-structures nested