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

本文介绍了编程中常用的算法思想如穷举、猜测验证、二分法等,并详细讲解了元组、列表和字典等数据结构的使用方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前学到的编程算法(思想):
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循环,循环的是键,而不是键对应的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值