1.列表的递归---用于输出列表字符串中的每个元素
>>> def printList(L):
#如果为空,则什么都不做
if not L:
return
#如果是链表,则对第一个元素调用printList函数
if type(L[0])==type([]):
printList(L[0])
else:#如果不是链表,仅输出元素即可
print L[0]
#处理L的其他部分
printList(L[1:])
>>> aList=['a',['b','c',['d','e']],'f',[],'g']
>>> printList(aList)
a
b
c
d
e
f
g
>>>
由于上例中是列表的嵌套,所以我们必须测试首项是否为一个列表,如果是,则递归调用printList()函数,如果不是,那我们就简单地打印它。处理完首项后,我们将继续处理列表的其他各项。
在大型数据结构中,递归会耗尽内存,因此,如果你的内存比较小,或者想处理很大的数据结构,那么使用更复杂的常规代码可能更安全些。
2.Python有三种名字空间:
局部---在类,模块或方法中定义的名字
模块---在文件中定义的名字
内置---python自身定义的名字
如果要访问模块名字空间,使用import
3.事件驱动编程:面向批处理的程序流程是---启动程序,处理事情,然后终止程序;而事件驱动程序流程是---只有通过事件触发,程序才启动程序,等待事件,然后由事件通知它终止
编写事件驱动程序有两种方式:一是模拟一个事件环境;二是创建一个简单的GUI程序,该程序可利用操作系统和环境来生成事件。
事件捕获和处理的独立性是事件驱动编程的关键特性。
本文介绍了Python中列表递归的应用实例及名字空间的概念。通过一个递归函数演示了如何遍历嵌套列表并打印每个元素,同时讲解了局部、模块和内置三种名字空间的区别。

7097

被折叠的 条评论
为什么被折叠?



