Python 编程导论 Chapter 5 —— 结构化类型、可变性与高阶函数

本章深入探讨Python的结构化类型,包括元组、范围、列表及其可变性。重点介绍了元组的用法,列表的不可变性,以及如何克隆和使用列表推导。同时,讲解了函数作为一等对象的特性,如高阶函数map的运用。此外,还阐述了字符串、元组、范围和列表的异同,以及字典的使用,强调字典的无序性和键的可散列性要求。
摘要由CSDN通过智能技术生成

typora-copy-images-to: Python 编程导论

Python 编程导论 Chapter 5 —— 结构化类型、可变性与高阶函数


  • python的标准库中拥有一个小的内建类型集合,用来处理数值数据、字符串、布尔值以及日期和时间。这类的‘单值’类型有时候被称为标量类型

  • int、float 是标量类型,这种类型的对象没有可以访问的内部结构

  • str 是一种结构化的非标量的类型,我们可以使用索引提取单个字符,也可以通过分片操作获取子字符串

  • 本章会介绍其他的3种——list、range、dict

5.1 元组

  • 元组:是一些元素的不可变有序序列

  • 元组中的元素不一定是字符,单个元素可以是任意类型

  • 要想表示包含 1 的单元素元组,我们应该写成 (1,)

t1 = (1, 'two', 3)
t2 = (t1, 3.25, 1, 'two')

# 返回一个元组,包含t1 和 t2的公约数
def intersect(t1, t2):
    result = ()
    for e in t1:
        if e in t2:
            result += (e,)
    return result

print(intersect(t1,t2))
  • 序列和多重赋值
  • 如果你知道一个序列(元组字符串)的长度,那么可以使用Python中的多重赋值语句方便地
    提取单个元素
 x, y = (3, 4)
# x 被绑定到3 , y 会被绑定到 4

a, b, c = 'xyz'
# a被绑定到x ,b被绑定到y,c被绑定到z

def findExtremeDivisors(n1, n2) :
    """假设n1和n2是正整数
    返回一个元组,包含n1和n2的最小公约数和最大公约数,最小公约数大于1,
    如果没有公约数,返回(None,None)"""
    minVal, maxVal = None, None
    for i in range(2,min(n1,n2) + 1)# 必须加1,因为不然不包含了,遍历从2开始
    	if n1%i == 0 and n2%i == 0 :  #余数都为0的情况下,判断minVal是否有值,如果没有值,则加入minVal,否则成为maxVal
            if minVal == None :
                minVal = i
    		maxVal = i
    return (minVal, maxVal)

5.2 范围

  • range 函数的三个参数,start 、 stop 、step
  • range(0, 7, 2) == range(0, 8, 2) 的值就是 True ,但 range(0, 7, 2) == range(6, -1, -2) 的值则是 False,虽然包含同样的整数,但是顺序不同

5.3 列表与可变性

L = ['I did it all', 4, 'love']
for i in range(len(L)):
	print(L[i])
    
# 输入为:
I did it all
4
love

# 中括号还可以用于表示 list 类型字面量、列表索引和列表切片
表达式 [1, 2, 3, 4][1:<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值