元组(元组)跟列表(名单)非常相似,二者之间的差异就是元组不可改变,列表是可以改变的。...,我们修改元组中的列表时却成功了。...元组x的前两个元素'a',1都是不可变的,而第三个元素是list,这个列表是可以改变的,但不能把第三个元素赋值为其它列表(上面示例中最后一个操作)或其它任何类型的数据。 ?...Out[55]: 3 (2)max() 返回元组元素中的最大值,元组元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错: In [57]: max(('a', 'b',...: '<' not supported between instances of 'str' and 'int' (4)sum() 计算元组所有元素的和,其元素类型必须是数值型的(整数,浮点数) In
值可以是任何值(列表,函数,字符串,任何东西)。键(key)必须是不可变的,例如,数字,字符串或元组。...值得注意的是,python是一种基于零索引的语言。所有这些意味着元组中的第一个值是索引0。...对于下面的示例代码,它将返回一个元组,其中包含索引0的对象,而不包括索引2的对象。...列表和元组是标准Python数据类型,用于在序列中存储值。...元组是不可变的,而列表是可变的。以下是元组列表的一些其他优点 组比列表更快。如果你要定义一组常量值,那么你将要做的就是迭代它,使用元组而不是列表。
= ['0512', '0571', '021'] 为了让城市和区号能对应起来,在创建列表的时候必须按照同样的索引顺序。...Python 发明人选择了 { } ,你是否也想到了这个?如果是,则英雄所见略同;如果不是,也要认可此规定。...“键”必须是不可变对象——如果书的目录名称会变化,那就不仅仅是眼花缭乱,而是手忙脚乱了。 “值”可以是 Python 中任何类型对象。 “值”可以重复。...至此,在已经学过的 Python 内置对象类型中,能够作为键值对中“键”的有:数字(整数、浮点数、复数)、字符串、元组。...[('a', 1), ('lang', 'python')] 为参数,列表中的成员是元组,每个元组内有两个对象,用这种方式约定了两个对象之间的对应关系。
如果读者查看 set() 的帮助文档,会发现其参数必须是可迭代对象(这很重要)。至此,我们已经学过的 Python 内置对象中,符合此要求的有:字符串、列表、元组、字典。...与字典一样,集合没有索引,或者说它不属于序列,即其中的成员本“无序”,即不需要用序列中的索引为每个成员建立映射关系,故不支持诸如列表中的索引、切片和其他序列特有的操作。...不论用 set() 还是用符号 { } 创建集合对象,其的成员必须是“不可变对象”——在5.1.1节中解释字典的键值对的键时曾使用过这个术语。...再总结一下,到现在所学的 Python 内置对象类型中,属于“不可变对象”的有:浮点数、整数、复数、字符串、元组;属于“可变对象”的有:列表、字典。...: unhashable type: 'list' 注意区分注释(4)和(1),在注释(4)中,试图得到一个成员分别是 [1 ,2]、3、4 的集合,而不是 {1, 2, 3, 4} 。
报错及分析 报错代码 TypeError: tuple indices must be integers or slices, not str 这个错误的意思是元组索引必须是整数或切片,不能是字符串。...在本报错中,错误出现在以下代码行: 'id': request.json['id'], 这里的 request.json 是一个元组而不是字典,因此使用字符串 'id' 作为索引引发了 TypeError...可能有用的解决方法 本案例是代码正确,环境有误。如果代码本身有问题,可以参考以下方法解决。 在 Python 中,元组(tuple)是一个有序的、不可变的序列,其中的元素可以通过索引来访问。...索引是用整数值来表示元组中的位置,以便获取特定位置上的元素值。...这是因为索引必须是整数类型或切片(例如 t[0] 或 t[1:3]),而不能是字符串类型。
C. () 解析:在Python中,元组是通过圆括号()来定义的,而{}用于定义字典,[]用于定义列表,在Python中不是有效的数据结构定义符号。 3. B....列表不是元组元素的合法类型,因为元组是不可变的,而列表是可变的。 14....B 解析:t = (1,) 是一个包含单个元素1的元组,而 t = 1 只是将变量 t 绑定到整数1上,它们不是等价的。 19....在Python中,字典的键必须是不可变的类型,如字符串、数字或元组,而值可以是任意类型。 21. A. 可以 解析:元组可以包含任意类型的元素,包括另一个元组。 22....是 解析:元组可以作为集合的元素,因为元组是不可变的,而集合的元素必须是不可变的。 40.
摘要 ✨ TypeError: unhashable type: 'list' 是Python编程中的常见错误,通常出现在试图将列表作为字典的键或插入集合时。...由于列表是可变的(mutable),因此它们不是哈希类型,不能直接用于这些场景。本文将详细讲解这一错误的根本原因,并提供多种解决方案,帮助开发者正确处理Python中的哈希性问题。...引言 在Python中,字典的键和集合中的元素必须是“可哈希”的。简单来说,哈希性意味着一个对象在其生命周期中具有不变的哈希值,并且该对象是不可变的。...输出:value 3.3 避免使用可变类型作为键 如果列表中的数据需要经常更改,建议使用另一种方法来标识字典的键,而不是直接使用列表。...总结 TypeError: unhashable type: 'list' 是由于Python中列表是不可哈希的可变对象所引起的。
如果classinfo类型对象,是多个类型对象组成的元组,如果object对象是元组的任一类型对象中实例,则返回True,否则返回False。...如果classinfo类型对象,不是一个类型对象或者由多个类型对象组成的元组,则会报错(TypeError)。...如果classinfo类型对象,不是一个类型对象或者由多个类型对象组成的元组,则会报错(TypeError)。 6.iter(object[,sentinel]) 函数功能返回一个可迭代对象。...7.len(s) 返回对象的长度,参数可以是序列(比如字符串、字节数组、元组、列表和range对象),或者是集合(比如字典、集合、不可变集合) 如果参数为其它类型,则其必须实现__len__方法,并返回整数...map函数是一个典型的函数式编程例子。 总结 转眼已经自学Python一周了,虽然平时工作还是比较忙的,学习的时间不是很多,但会一直坚持下去的。
列表数据类型 列表是一个包含有序序列中多个值的值。术语列表值指的是列表本身(它是一个可以存储在变量中或像任何其他值一样传递给函数的值),而不是列表值内部的值。...整数值-1指的是列表中的最后一个索引,数值-2指的是列表中的倒数第二个索引,依此类推。...请注意索引和切片之间的区别。 spam[2]是带索引的列表(一个整数)。 spam[1:4]是一个带切片的列表(两个整数)。 在切片中,第一个整数是切片开始的索引。第二个整数是切片结束的索引。...元组数据类型 除了两个方面之外,元组数据类型几乎与列表数据类型相同。首先,用圆括号、(和)键入元组,而不是方括号、[和]。...如果您需要从不改变的有序值序列,请使用元组。使用元组而不是列表的第二个好处是,因为它们是不可变的,它们的内容不会改变,所以 Python 可以实现一些优化,使使用元组的代码比使用列表的代码略快。
list.count(obj) 统计某个元素在列表中出现的次数 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index(obj) 从列表中找出某个值第一个匹配项的索引位置...,索引从0开始 list.insert(index, obj) 将对象插入列表 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove...(obj) 移除列表中某个值的第一个匹配项 list.reverse() 反向列表中元素,倒转 list.sort([func]) 对原列表进行排序 元组: 元组与列表相似(都是不同元素的集合),但是它的元素是不可以改变的...列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典由键和对应的值组成。字典也被称作关联数组或哈希表。...键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。 字典内置的函数: cmp(dict1, dict2) 比较两个字典元素。
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。...3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 4、Python中的字符串不能改变。 List(列表) List(列表) 是 Python 中使用最频繁的数据类型。...可以使用大括号({})或者 set()函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 #!...列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。...字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。 键(key)必须使用不可变类型。 在同一个字典中,键(key)必须是唯一的。 #!
前言: Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。...Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 Python中的字符串不能改变。 List(列表) List(列表) 是 Python 中使用最频繁的数据类型。...和字符串一样,list可以被索引和切片。 List可以使用+操作符进行拼接。 List中的元素是可以改变的。 Tuple(元组) 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。...基本功能是进行成员关系测试和删除重复元素。 可以使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 {},因为 {} 是用来创建一个空字典。...列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
12、负数索引 python支持负数索引,正常索引是从左到右索引,负数索引是从右到左 | 列表内容 | 1 | 13 | 33 |28 | 56 | 88 | | ------------- |:---...18、序列: 列表、元组、字符串统称为序列,共同点: 都可以通过索引得到每一个元素 默认索引值总是从0开始(当然灵活的Python还支持负数索引) 可以通过分片的方法得到一个范围内的元素的集合 有很多共同的操作符...40、python三大容器 python基于序列的三大容器是列表、元组、和字符串。 41、迭代 迭代:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。...每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。迭代器不是一个容器,是实现了next()方法的对象。...生成器的最大作用是使得函数可以“保留现场”,当下一次执行该函数是从上一次结束的地方开始,而不是重头再来。
一、Python对象的相关术语 Python中一切皆对象,python程序中保存的所有数据都是围绕对象这个概念展开的;所有的对象都是由类实例化而来的,只不过这些类有些是python内置的类;例如,整数和浮点数...,包括字符串、列表和元组 字符串字面量:把文本放入单引号(必须在同一行) ,双引号(必须在同一行),三引号(跨行)中; 字符串是字符的 列表和元组是任意Python对象的序列...: list(s)可将任意可迭代类型转换为列表,而如果s已经是一个列表,则该函数构造的新列表是s的一个浅复制 ?...,如字符串、数字、元组等 包含可变对象的列表、字典和元组不能用作键 m[k]运算符用于选择映射对象中的一项,其中“k”是一个键值 引用不存在的键会引发KeyError异常 m.iteritems...与序列不同,集合不提供索引或切片操作 与字典不同,集合不存在相关的键值 放入集合中的项目必须是不可变的 集合有两种类型: 可变集合:set() 不可变集合:frozenset
1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。...3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 4、Python中的字符串不能改变。 List(列表) List(列表) 是 Python 中使用最频繁的数据类型。...可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。...列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。...d 必须是一个序列 (key,value)元组。
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。...注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:parame = {value01,value02,...}或者set(value)实例#!...列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。...与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。...d 必须是一个 (key, value)元组序列。
标识符 第一个字符必须是字母表中字母或下划线'_'。 标识符的其他的部分有字母、数字和下划线组成。 标识符对大小写敏感。 注释 Python中单行注释以 # 开头,实例如下: #!...item_three', 'item_four', 'item_five'] 数据类型 python中数有四种类型:整数、长整数、浮点数和复数。...整数, 如 1 长整数 是比较大的整数 浮点数 如 1.23、3E-2 复数 如 1 + 2j、 1.1 + 2.2j 字符串 python中单引号和双引号使用完全相同。...每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。...可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
1.元组(tuple) Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。...所以要创建一个内容也不变的tuple那就必须保证tuple的每一个元素本身也不能变,即是不可变数据类型。 2.访问元组(索引) 元组可以使用中括号加下标索引来访问元组中的值。...,错误信息提示元组未被定义 4.元组特性 (1).切片 和列表的切片一样,使用中括号。...注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。当用set()创建的集合有多个个元素时,需要将所有的元素再用括号括起来,否则会报错。...: add() takes exactly one argument (2 given) 还有一个方法,也可以添加元素,且参数是列表,元组,字典,集合,字符串,不能是整数。
在 Python 中,有四类最常见的内建容器类型:列表(list)、元组(tuple)、字典(dict)、集合(set)。通过单独或是组合使用它们,可以高效的完成很多事情。...列表 - list 列表的特性: 有序的集合 通过偏移来索引,从而读取数据 支持嵌套 可变的类型 查找和插入元素的时间随元素增多而变慢,时间复杂度 O (n) 元组 - tuple 下面是元组和列表的几个区别...最重要的区别:元组是不可变的,而列表是可变的。 下面两点是元组的优点。 大小不同 a = tuple(range(1000)) b = list(range(1000)) print(a....而 list 的查找速度随着元素增加而逐渐下降。不过 dict 的查找速度快不是没有代价的,dict 的缺点是占用内存大,还会浪费很多内容,list 正好相反,占用内存小,但是查找速度慢。...作为 key 的元素必须不可变 Python 的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是 list 是可变的,就不能作为 key。
Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。...3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 4、Python中的字符串不能改变。...可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。...列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。...字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。 键(key)必须使用不可变类型。 在同一个字典中,键(key)必须是唯一的。
领取专属 10元无门槛券
手把手带您无忧上云