Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据。...与我们生活中不同的是,列表的第一元素的索引是0。...Python数据结构: list(列表) list(列表)推导式 处理一个序列中的所有或部分元素并返回结果列表的一种紧凑写法。...[55]: 3 (2)max() 返回列表元素中的最大值,列表元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错: In [57]: max(['a', 'b', 'c...() a变为:[] index() 返回遇到的第一个某值的索引, 如果列表不包含该值则抛出错误 a=[1,1,1];a.index(1) 返回0 count() 返回列表中某值的个数 a=[1,1,2]
报错及分析 报错代码 TypeError: tuple indices must be integers or slices, not str 这个错误的意思是元组索引必须是整数或切片,不能是字符串。...在本报错中,错误出现在以下代码行: 'id': request.json['id'], 这里的 request.json 是一个元组而不是字典,因此使用字符串 'id' 作为索引引发了 TypeError...索引是用整数值来表示元组中的位置,以便获取特定位置上的元素值。...然而,如果你尝试使用字符串作为索引来访问元组,就会引发 TypeError。...这是因为索引必须是整数类型或切片(例如 t[0] 或 t[1:3]),而不能是字符串类型。
C. () 解析:在Python中,元组是通过圆括号()来定义的,而{}用于定义字典,[]用于定义列表,在Python中不是有效的数据结构定义符号。 3. B....在Python中,字典的键必须是不可变的类型,如字符串、数字或元组,而值可以是任意类型。 21. A. 可以 解析:元组可以包含任意类型的元素,包括另一个元组。 22....选项A (1) 在没有上下文的情况下可能不会被解释为元组,而选项B 1 只是一个整数,选项D ['1'] 是一个包含字符串 '1' 的列表。 23....错误 解析:元组是一种不可变的数据结构,一旦创建,其元素就不能被修改。 2. 答案:A. 正确 解析:元组可以包含任意类型的元素,包括整数、浮点数、字符串、列表、另一个元组等。 3. 答案:B....错误 解析:要创建一个包含单个元素的元组,必须在元素后面加上逗号,如 (1,)。 4. 答案:B. 错误 解析:元组不仅支持索引操作,还支持切片操作,允许你获取元组的一个子集。 5. 答案:B.
列表数据类型 列表是一个包含有序序列中多个值的值。术语列表值指的是列表本身(它是一个可以存储在变量中或像任何其他值一样传递给函数的值),而不是列表值内部的值。...这个表达式依次计算出字符串值'Hello, cat'➋。 如果使用的索引超过了列表值中的值的数量,Python 会给出一个IndexError错误消息。...用切片从另一个列表中获取一个列表 就像索引可以从列表中获取单个值一样,切片可以以新列表的形式从列表中获取多个值。像索引一样,切片在方括号之间键入,但它有两个由冒号分隔的整数。...请注意索引和切片之间的区别。 spam[2]是带索引的列表(一个整数)。 spam[1:4]是一个带切片的列表(两个整数)。 在切片中,第一个整数是切片开始的索引。第二个整数是切片结束的索引。...包含元组或字符串值的变量可以被新的元组或字符串值覆盖,但这与原地修改现有值不是一回事——比如说,append()或remove()方法对列表所做的。 变量不直接存储列表值;他们将引用存储到列表中。
想成为一名优质的博主那么这篇专栏你一定要去了解 引言 在Python编程中,类型错误(TypeError)是一种常见的错误,它表明代码中存在类型不匹配的问题。...TypeError: list indices must be integers or slices, not str 是一个典型的例子,表明在尝试访问列表(list)的元素时使用了字符串索引,而不是整数或切片...一、问题描述 1.1 报错示例 以下是一个可能导致这个错误的示例代码: # 创建一个列表 my_list = [1, 2, 3, 4, 5] # 尝试使用字符串索引访问列表元素 print(my_list...my_list的元素时,使用了字符串'first'作为索引,而不是整数或切片。...在Python中,列表是一个可变的序列,它的元素只能通过整数索引或切片来访问。 1.3 解决思路 为了解决这个问题,我们需要确保在访问列表元素时使用正确的索引类型。以下是一些解决方案。
| | | | 正索引: 0 1 2 3 4 负索引: -5 -4 -3 -2 -1 因为元组是不可修改的,我们通过索引企图修改元素时,就会报错...,我们修改元组中的列表时却成功了。...元组x的前两个元素'a',1都是不可变的,而第三个元素是list,这个列表是可以改变的,但不能把第三个元素赋值为其它列表(上面示例中最后一个操作)或其它任何类型的数据。 ?...,元组元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错: In [57]: max(('a', 'b', 'c')) Out[57]: 'c' In [58]: max...: '<' not supported between instances of 'str' and 'int' (4)sum() 计算元组所有元素的和,其元素类型必须是数值型的(整数,浮点数) In
当时,我正在处理一个包含多个数据项的元组,试图通过字符串索引来获取其中的某个元素,结果就出现了“TypeError: tuple indices must be integers or slices,...因为在Python中,元组的索引必须是整数或者切片,而不能是字符串。 1.2 报错分析 通过分析这段代码,我们可以发现报错的原因。在尝试获取产品价格时,我们使用了字符串“apple”作为索引。...既然元组的索引不能是字符串,那么我们就需要考虑其他的方式来实现我们的目标。一种可能的解决方案是使用整数索引来获取元素,另一种可能是将元组转换为其他数据结构,以便能够使用字符串作为键来查找对应的值。...二、解决方法 2.1 方法一:使用整数索引 既然我们知道元组的索引必须是整数,那么最直接的解决方法就是使用整数索引来获取元素。...在上面的例子中,如果我们知道“apple”对应的是第一个产品,那么我们可以直接使用product_prices[0]来获取价格。这种方法简单直接,但前提是我们需要事先知道每个产品的索引位置。
字符串只能存储少量的数据,对于大量的数据用字符串操作不方便也不易存储。 字符串:无论切片还是对其进行任何操作,获取的内容全都是str类型。字符串存储的数据类型太单一,只能是字符串类型。...2.索引,切片,步长 li = [100, '太白', True, [1, 2, 3]] # 索引 列表索引,其在列表中是什么数据类型,取出来就是什么数据类型,如数字,字符串,列表... print...(按正奇数1,3,5,...删)的元素,倒着删除, # 每次删除一个元素,要从索引为-1的开始删除,删除后下一次要删除元素的索引号变为-2,再下一次变为-3,直到-n/2,这个数必须为整数int类型,...#并且索引号都使从左往右数的索引号,不用管列表中的元素的个数到底是奇数个还是偶数个。直接按正索引号去删除。...list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元组。
切片通常写成 start:end 这种形式,包括「start 索引」对应的元素,不包括「end索引」对应的元素。因此 s[2:4] 只获取字符串第 3 个到第 4 个元素。...索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。...元组中可以用整数来对它进行索引 (indexing) 和切片 (slicing),不严谨的讲,前者是获取单个元素,后者是获取一组元素。...,把一个东西整体添加在列表后,而 extend 是扩展,把一个东西里的所有元素添加在列表后。...,因此只有那些不可更改的数据类型才能当键,比如整数 (虽然怪怪的)、浮点数 (虽然怪怪的)、布尔 (虽然怪怪的)、字符、元组 (虽然怪怪的),而列表却不行,因为它可更改。
想成为一名优质的博主那么这篇专栏你一定要去了解 引言 在Python编程中,TypeError是一个常见的错误类型,它表示在操作或函数调用中使用了错误的类型。...# 尝试使用字符串索引访问字符,但使用了错误的索引类型 character = my_string["two"] 上面的代码试图使用一个字符串索引来访问字符串中的字符,但由于使用了错误的索引类型(字符串而不是整数...在Python中,字符串索引必须是整数或切片。 1.3 解决思路: 要解决这个问题,我们需要确保在使用字符串索引时使用整数类型。如果需要使用字符串作为索引,可以考虑使用字典或其他映射类型。...四 总结 当遇到TypeError: string indices must be integers错误时,通常意味着我们尝试使用非整数类型作为字符串的索引。...解决这个问题的方法是确保在使用字符串索引时使用整数类型。下次遇到这类报错时,请检查代码中是否有使用非整数类型作为字符串索引的操作,并使用整数索引来修复错误。
① 单行索引 df.loc[1103] 虽然这里的1103是整数, 但loc索引方式用的是索引标签, 而不是默认整数索引(注意默认整数索引和标签索引这二者有时候是一样的) ② 多行索引 多行索引时,需传入一个...list,而不是多个索引 df.loc[[1102,2304]] 多行索引时, 传入的必须是一个list, 而不是两个或多个索引, 否则会报错 #以下索引报错 # TypeError: cannot do...df.iloc[lambda x:np.arange(3)] 小节:由上所述,iloc中接收的参数只能为整数或整数列表,不能使用布尔索引。...索引多列时,传入的必须是一个list,而不是多个列名标签--方括号应该有两层。...: 如果不加values就会索引对齐发生错误,Pandas中的索引对齐是一个重要特征,很多时候非常使用。
切片通常写成 start:end 这种形式,包括「start 索引」对应的元素,不包括「end索引」对应的元素。因此 s[2:4] 只获取字符串第 3 个到第 4 个元素。...索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。...元组中可以用整数来对它进行索引 (indexing) 和切片 (slicing),不严谨的讲,前者是获取单个元素,后者是获取一组元素。...,因此只有那些不可更改的数据类型才能当键,比如整数 (虽然怪怪的)、浮点数 (虽然怪怪的)、布尔 (虽然怪怪的)、字符、元组 (虽然怪怪的),而列表却不行,因为它可更改。...之后所有的细节都可以慢慢来,虽然我觉得本篇已经挖了不少细节了,像 hashability,但肯定还有更多等着去挖,半篇帖子就想覆盖 Python 所有内容不是开玩笑吗?
4.问:为什么使用pip命令安装扩展库是提示“不是内部或外部命令,也不是可运行的程序或批处理文件”?...答:在Python中,不可哈希(unhashable)和可变的意思是一样的。整数、实数、复数、字符串、元组这些是不可变的,或者说是可哈希的。而列表、字典、集合是可变的,或者说是不可哈希的。...答:使用切片操作修改列表中部分元素时,如果第三个数字step的值不等于1,那么等号左侧的切片长度和等号右侧的列表长度必须一致。...24.问:我机器上明明是有test.txt这个文件的,为什么使用内置函数open()打开时提示文件不存在呢? 答:如果文件test.txt不在当前文件夹中,在打开或读写时必须指定完整路径。...以[1, 2, 3, 4]和[1, 2, 3]为例,两个列表中前三个元素是相等的,但第一个列表中还有多余的元素,所以[1, 2, 3, 4]>[1, 2, 3]。
("world") # 字符串没有append方法错误原因上面的代码中,列表对象根本没有length这个属性(列表用len()函数来获取长度),字符串是不可变的,也没有append()方法(这是列表的方法...# 列表只有5个元素,最小负索引是-5错误原因Python 中列表、元组等有序序列的索引是从 0 开始的,比如一个有 5 个元素的列表,索引是 0 到 4。...# 列表里没有4这个元素# 范围错误import randomrandom.randint(5, 3) # 第一个参数必须小于等于第二个参数错误原因这种错误是说函数收到的参数类型是对的,但值不合适。...比如,你不能把数字和字符串直接相加,不能对一个整数用len()函数(因为len()需要处理字符串、列表等可迭代对象)。解决办法先确认你操作的数据类型是什么,然后检查这种操作是否适合这种数据类型。...# 字符串是可迭代对象,可以用len()print(len("123")) # 输出3# 正确使用列表list1 = [1, 2, 3]print(list1[0]) # 访问列表元素,而不是把列表当函数调用
在其他情况下,它会出错,但错误会不正确地是关于广播的ValueError,而不是正确的IndexError。...(gh-17068) __array_interface__["data"]元组的第一个元素必须是整数 这已经是多年的文档接口,但仍然有代码会接受指针地址的字节字符串表示。...在其他情况下,它会出现一个错误,但错误消息不是IndexError而是有关广播的ValueError。...在其他情况下,它会产生一个错误,但该错误是关于广播而不是正确的 IndexError 的错误 ValueError。...(gh-17068) __array_interface__["data"] 元组的第一个元素必须是整数 这已经是多年来的文档接口,但仍有代码会接受指针地址的字节字符串表示。
我习惯叫“下标”。 上例中,0就是偏移量。 通过偏移量来对列表进行索引(可理解为搜索定位),进而获取我们所需的元素。...偏移量提取示例 print(myName[0]) # 得到“小石头” 偏移量值的大小 当偏移量的值是小于或等于“列表长度-1”的话,我们用偏移量获取列表中的元素,则返回的是列表中我们想要的这个元素。...IndexError错误 偏移量提取的结果 结果是列表内的一个元素,数据类型取决于提取出来的那个元素是什么类型的。 列表操作 - 提取多个:切片 提取列表中的一个甚至多个元素用切片。...如下: # 伪代码 列表变量名.append(参数) append参数 1、参数类型:不限。可以是字符串、数字这样的单个元素,也可以是列表、字典这样的集合元素。 2、参数个数:一个,且必须填一个。...如果多填或不填都会报TypeError错误。
TypeError:当操作或函数应用于错误类型的对象(例如将字符串添加到整数)时,将引发此异常。NameError:当在当前作用域中找不到变量或函数名称时,将引发此异常。...IndexError:当索引超出列表、元组或其他序列类型的范围时,将引发此异常。KeyError:当在字典中找不到键时,会引发此异常。...下面是一个示例:这里会引发“TypeError”,因为要添加的两种数据类型不同。...x = 5y = "hello"z = x + y输出:尝试 catch 块来解决它:代码尝试将整数 (x) 和字符串 (y) 相加,这不是有效的操作,它将引发 x y TypeError 。...总的来说,Python 中异常处理的好处大于缺点,但重要的是要明智而谨慎地使用它,以保持代码质量和程序可靠性。我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!