首页
学习
活动
专区
圈层
工具
发布

《流畅的Python》第一章学习笔记

就加入到 Python 里,用以 构建只有少数属性但是没有方法的对象 在官方文档中也翻译为命名元祖 它赋予了每个位置一个含义,提供可读性和自文档性。...有效字段名:除了下划线开头的那些任何有效的Python 标识符。...有效标识符由字母,数字,下划线组成,但首字母不能是数字或下划线,另外不能是关键词 比如 ['abc', 'def', 'ghi', 'abc'] 转换成 ['abc', '_1', 'ghi', '_3...'] , 消除关键词 def 和重复字段名 abc isidentifier:判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法 iskeyword:包含全部关键字的冻结的集合 from...field_names.replace(',', ' ').split() # 将逗号转换为空格后进行切割 field_names = list(map(str, field_names)) # 将列表中的全部内容转换为字符串类型

99810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python元组拆包捡到8倍镜快准狠

    拆包有个要求,元组中的元素数量必须跟接受这些元素的空挡数一致,否则会报错: tuple_test = (1, 2, 3) a, b = tuple_test # ValueError: too many...元组拆包提供了语法糖,对于交换两个变量的值的常规写法: temp = a a = b b = temp 可以切换为优雅写法: b, a = a, b 具名元组 元组很像数据库表记录,除了没有表名和字段名...,collections.namedtuple具名元组补偿了这个缺憾,它是一个工厂函数,可以用来构建一个带字段名的元组和一个有名字的类,比如: import collections # 定义 Card...card_test.rank) # J print(card_test[1]) # hearts Card是表名,有两个表字段rank和suit。...定义具名元组需要2个参数,第1个参数是类名,第2个参数是字段名,既可以是可迭代对象(如列表和元组),也可以是空格间隔的字符串: Card = collections.namedtuple("Card",

    97510

    啃书-- 流畅的python 第五章 数据类构建器

    创建:一个类名和一个字段名称列表。..._asdict()) 可以dump json访问字段:1) _field() 返回类的字段名tuple , 注意这里不能是实例._fields , 而是 类名....的主要功能在类型注解,与collections.namedtuple 的区别在于:必须声明每个属性的类型可以用class 句法实现,可以添加class 方法类型注解:功能 : python本身执行时完全不管类型...,但不是绝对不可变字段选项1) 提供类型+默认值 : 注意 python规定,带默认值的param 后面不能有无默认值的param 出现,因此带默认值的param 后面所有的param 都必须有默认值。...它是 typing 模块中的一部分,提供了对类型注解的支持,特别是在面向对象编程中,帮助明确区分实例变量和类变量。

    30610

    Python 中 str.format() 方法详解

    简单字段名2.1 简单字段名的说明2.2 省略字段名2.3 数字形式的简单字段名2.4 变量名形式的简单字段名2.5 简单字段名的混合使用2.6 使用元组和字典传参    3....简单字段名  2.1 简单字段名的说明  简单字段名有三种写法:  省略不写 {}数字 {十进制非负整数}变量名 {合法的Python标识符}  2.2 省略字段名  花括号内省略字段名,传递位置参数。...数字必须是大于等于 0 的整数。带数字的替换字段可以重复使用。数字形式的简单字段名相当于把 format 中的所有位置参数整体当作一个元组,通过字段名中的数字进行取值。...""" 2.5 简单字段名的混合使用  混合使用数字形式和变量名形式的字段名,可以同时传递位置参数和关键字参数。关键字参数必须位于位置参数之后。混合使用时可以省略数字。...,该对齐选项仅对数字类型有效。

    1.1K00

    Python 中 str.format() 方法详解

    简单字段名2.1 简单字段名的说明2.2 省略字段名2.3 数字形式的简单字段名2.4 变量名形式的简单字段名2.5 简单字段名的混合使用2.6 使用元组和字典传参    3....简单字段名  2.1 简单字段名的说明  简单字段名有三种写法:  省略不写 {}数字 {十进制非负整数}变量名 {合法的Python标识符}  2.2 省略字段名  花括号内省略字段名,传递位置参数。...数字必须是大于等于 0 的整数。带数字的替换字段可以重复使用。数字形式的简单字段名相当于把 format 中的所有位置参数整体当作一个元组,通过字段名中的数字进行取值。...""" 2.5 简单字段名的混合使用  混合使用数字形式和变量名形式的字段名,可以同时传递位置参数和关键字参数。关键字参数必须位于位置参数之后。混合使用时可以省略数字。...,该对齐选项仅对数字类型有效。

    1.3K00

    2 . python Collectio

    nametuple() 是具有命名字段的元组的工厂函数 命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码  它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能...任何有效的Python标识符都可以用于字段名称,除了以下划线开头的名称外。      ...有效标识符由字母,数字和下划线组成,但不以数字或下划线开头,并且不能是关键字,例如:class,for,return,global,pass或raise。     ..._fields                 列出字段名称的字符串元组。 用于内省和从现有命名元组中创建新的命名元组类型。 ?             ...由于命名元组是常规的Python类,因此可以使用子类轻松添加或更改功能。以下是如何添加计算字段和固定宽度打印格式的方法: ?

    1.4K10

    流畅的 Python 第二版(GPT 重译)(三)

    它只是一种语法,用于为将用作记录的映射值接受的函数参数和变量编写类型提示,其中键作为字段名。我们将在第十五章的TypedDict中看到它们。 本章的新内容 本章是流畅的 Python第二版中的新内容。...获取字段名称和默认值 所有三种类构建器都允许您获取字段名称和可能为其配置的默认值。在命名元组类中,这些元数据位于._fields和._fields_defaults类属性中。...获取字段类型 使用typing.NamedTuple和@dataclass帮助定义的类具有字段名称到类型的映射__annotations__类属性。...经典的命名元组 collections.namedtuple函数是一个工厂,构建了增强了字段名称、类名和信息性__repr__的tuple子类。...我们在“无运行时效果”中看到类型提示在运行时没有效果。

    69000

    Python 具名元组——我不只是可不变列表

    Intro 很多 Python 入门资料会将元组 ( tuple) 介绍为 "不可变列表", 因其具备可迭代和可切片的能力, 同时无法修改元组中的值而得名. 然而这只是元组的其中一个特性而已....元组的本质 元组是对数据的一个记录, 每个位置记录了某个字段的值, 位置和字段信息赋予了这组数据的意义....听起来很像数据库中的某条数据记录, 假如数据的元素不保持某个固定的位置, 你还认为这个数据是可用的吗?...具名元组 —— 元组特性的最有力体现 具名元组来自 Python 内置库 collections.nametupled 中, 可以用来构建带字段名的元组和一个相应的类 使用 nametupled 构建的类的实例所消耗的内存与元组是一致的..., 因为字段名都被保存在对应的类里面. —— 译自 Fluent Python 声明方式一 nametuple 构造函数的首个参数为类名, 第二个参数为字段名信息, 可以是以空格隔开的字符串, 也可以是字符串数组

    1.1K20

    Python每日一题:标准库

    比如 collections 模块中的 defaultdict() ,用于新建一个带默认值的 dict。它接受一个参数,这个参数必须是一个函数。...比如 collections 中的 OrderedDict。有序字典,个人觉得这个很好用。示例请看第二篇文章。 5. 比如 collections 中的 namedtuple(),具名元组。...None) """ 第一个参数,接受一个 String 类型,表示定义的元组的类型。...这里需要注意它和返回值的区别。 该方法返回的是 typename 类型的一个元组,返回值可以和 typename 不一致,返回值是用来定义一个 typename 类型的名称。...也可以是一个字符串的序列,比如列表,元组等 这里需要注意的是,除了以下划线开头的名称外,任何有效的 Python 标识符都可以用于 filedname,不能是关键字 第三个参数 verbose 已经过时

    54020

    Python中collections模块学习

    most_common([n]):返回一个列表,提供n个访问频率最高的元素和计数 subtract([iterable-or-mapping]):从迭代对象中减去元素,输入输出可以是0或者负数 update...defaultdict(None, {}) e = collections.defaultdict(str) e defaultdict(, {}) defaultdict的一个典型用法是使用其中一种内置类型...list'>, {'NC': ['Raleigh', 'Asheville'], 'VA': ['Richmond'], 'WA': ['Seattle']}) OrderedDict Python字典中的键的顺序是任意的...三种定义命名元组的方法:第一个参数是命名元组的构造器(如下的:Person,Human) from collections import namedtuple Person = namedtuple(...如果没有 maps 被指定,就提供一个默认的空字典 。ChainMap是管理嵌套上下文和覆盖的有用工具。

    64630

    【python高级编程】namedtuple用法--给元组中的每个元素命名

    参考链接: Python中的命名元组Namedtuple 为什么要给元组中的每个元素命名  给每个元组中的元素命名,我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序的可读性。 ...是collections模块中的一个工厂函数,使用此函数可以创建一个可读性更强的元组。...另外,我们也不用去考虑性能问题,因为具名元组和普通元组所需要的内存空间相同。  下面我们来看namedtuple方法的参数。...下面是2个必传参数,typename和field_names,一般我们只会用到这两个参数。 ...field_names: 参数类型为字符串序列,用于为创建的元组的每个元素命名,可以传入像[‘a’, ‘b’]这样的序列,也可以传入'a b'或'a, b'这种被分割字符分割的单字符串,但必须是合法标识符

    3.7K40

    Python工匠:如何更好地使用变量

    1 保持一致性 如果你在一个方法内里面把图片变量叫做 photo,在其他的地方就不要把它改成 image,这样只会让代码的阅读者困惑:『image 和 photo 到底是不是同一个东西?』...另外,虽然 Python 是动态类型语言,但那也不意味着你可以用同一个变量名一会表示 str 类型,过会又换成 list。同一个变量名指代的变量类型,也需要保持一致性。...4 合理使用 namedtuple/dict  合理使用 namedtuple/dict 来让函数返回多个值。...如果是上面这种写法,你需要找到所有调用 latlon_to_address 的地方,补上多出来的这个变量,否则 ValueError: too many values to unpack 就会找上你:...如果以后有定义变量的需求,那就以后再加吧。 结束语 变量作为程序语言的重要组成部分,值得我们在定义和使用它时,多花一丁点时间思考一下,那样会让你的代码变得更优秀。

    1.4K40

    神经网络实验代码 | PyTorch系列(二十七)

    使用RunBuilder类 本文以及本系列最后几节的目的是使自己处于能够有效地尝试我们所构建的训练过程的位置。因此,我们将扩展在超参数实验中该情节涉及的内容。我们将使那里看到的更加干净。...我们有一组要尝试的学习率和一组批batch的大小。当我们说“尝试”时,是指我们要针对字典中的每个学习率和每个批次大小进行一次训练。...这些运行中的每一个都有学习率和定义运行的batch大小。...,如果我们想添加其他类型的参数,我们要做的就是添加它。...这个Run类用于封装每次运行的数据。此类的字段名称由传递给构造函数的名称列表设置。首先,我们传递类名。然后,我们传递字段名,在本例中,我们传递字典中的键列表。

    84420

    SQL标识符

    标识符名称在其上下文中必须是唯一的; 例如,同一模式中的两个表或同一表中的两个字段不能具有相同的名称。 但是,不同模式中的两个表或不同表中的两个字段可以具有相同的名称。...在大多数情况下,相同的标识符名称可以用于不同类型的SQL实体; 例如,一个模式、该模式中的表以及该表中的字段都可以具有相同的名称,而不会产生冲突。 但是,同一个模式中的表和视图不能具有相同的名称。...第四个和第五个方法调用也返回1;这些是有效的标识符,尽管它们不能用作表名或字段名。最后三个方法调用返回0,表示标识符无效。...但是,相同的命名空间名称标点限制适用于简单标识符和分隔标识符。标识符和类实体名称通过去除非字母数字字符,SQL表名、视图名、字段名、索引名、触发器名和过程名用于生成相应的持久类实体。...第一个字符为标点字符,第二个字符为数字的标识符对于表名、视图名或过程名无效。 它们对字段名和索引名有效。

    3.3K10

    SQL命令 CREATE TABLE(一)

    此逗号分隔的列表用圆括号括起来。每个字段定义(至少)由一个字段名(指定为有效标识符)和一个数据类型组成。关键字短语可以只由关键字(%PUBLICROWID)、关键字和文字组成。...为约束指定的所有字段名也必须在字段定义中定义。必须用括号括起来。...reffield-commalist - 可选-在FOREIGN KEY约束中指定的引用表中定义的字段名或现有字段名列表(以逗号分隔)。如果指定,必须用圆括号括起来。...表名和模式名遵循SQL标识符命名约定,受使用非字母数字字符、唯一性和最大长度的附加约束。以%字符开头的名称保留供系统使用。默认情况下,模式名和表名是简单标识符,不区分大小写。...IRIS使用表名生成相应的类名。 IRIS使用架构名称来生成相应的类包名称。类名仅包含字母数字字符(字母和数字),并且在前96个字符内必须是唯一的。

    2K30

    Python 类型提示 TypedDict 告别字典类型错误,提升代码编辑器体验!

    定义TypedDict类:告诉编辑器,Coord类型的字典必须有x(int)和y(int)class Coord(TypedDict): x: int # 字段名:x,类型:整数(必需) y:...问题 1:字段名是 Python 关键字(如 for、class)如果字典的字段名刚好是 Python 关键字(比如 API 返回的字段里有 “for”),直接写会报错。...“TypedDict 是 Python typing模块里的工具,作用是给普通字典加‘类型契约’—— 定义字典必须包含的字段和每个字段的类型。...它和普通字典的核心区别有两点:类型提示:普通字典没有字段和类型的约束,写代码时不知道该传什么;TypedDict 能告诉编辑器和开发者‘这个字典该有哪些字段、类型是什么’,避免记混字段名。...TypedDict 中的 NotRequired 和 Optional 有什么区别?回答思路:用 “字段是否存在” 和 “值是否为 None” 两个维度区分,举例子最清楚。

    64110
    领券