计算机科学与Python编程导论_MIT 学习笔记(六)

目前学到的编程算法(思想):
1 穷举
2 猜测和验证
3 二分法
4 分而治之

元组(tuple):

当声明一个只有一个元素的元组时,要在元素后面加‘,’

例:找公约数

def findDivisors(n1,n2):
    """assumes n1 and n2 positive ints
       returns tuple containing
       common divisors of n1 and n2"""
    ans=()
    for i in range(1,min(n1,n2)+1):
        if n1%i==0 and n2%i==0:
            ans+=(i,)
    return ans

tuple可以做到的:
检索,切分,串联,循环访问
tuple不能做到的:
更改内部元素的值

列表(list)
列表是可变的(对比元组)
父列表中的子列表的更新会导致父列表的更新

.append 在一个列表的末尾添加另一个列表
+ 将两个列表中的元素复制,并按顺序放到一个新列表中,原先的两个列表

例:移除重复

def removeDupsBetter(L1,L2):
    L1re=L1[:]
    for e1 in L1re:
        if e1 in L2:
            L1.remove(e1)
    return L1

L1re=L1[:] 的意义在于将L1中的所有元素复制给L1re,而不是将L1这个列表复制给L1re,这使得L1不会随循环而改变,而L1re会改变,但也可以指引循环。

如果list1 is list2,则两个列表会随对方的变化产生相同的变化,否则不会

字典
字典是更一般化的列表
字典中的索引是键(key),在这个定义下,字典就是键值对的集合
字典中的值只能通过对应键索引出
对字典进行for循环,循环的是键,而不是键对应的值

你可能感兴趣的:(学习笔记,算法)