def printing_Kfold_scores(x_train_data,y_train_data):
️ TypeError: argument of type ‘NoneType’ is not iterable - NoneType类型的参数不可迭代完美解决方法 摘要 大家好,我是默语,擅长全栈开发...关键词:TypeError、NoneType、迭代、Python 错误、错误处理、调试技巧 引言 ✨ 在Python开发中,TypeError 是一种常见的错误类型,尤其是当我们错误地操作 None 时...错误的背景与成因 1.1 什么是 NoneType? 在Python中,NoneType 是表示空值的一种数据类型。它只有一个值,就是 None,通常用于表示"没有值"或"空"。...' is not iterable 这是因为 None 不是一个可迭代对象(如列表、字典或字符串),因此不能进行迭代操作。...data = None try: for item in data: print(item) except TypeError: print("数据不可迭代") 3.4
一、字符串不可变 1、字符串类型不可变性说明 在 JavaScript 中 , 一个字符串 一旦被创建 , 之后就不能更改该字符串的值 ; 尝试修改一个字符串变量时 , 实际上是在内促中开辟出了一块新的内存空间..., 并在该控件中创建了一个新的字符串 , 赋值给原来的字符串变量 ; 每次修改字符串 , 都需要消耗更多的内存 , 但是从线程安全 , 性能优化 角度出发 , 字符串不可修改获益更大 ; 2、字符串不可变的好处...字符串不可变的好处 : 线程安全 : 多个线程操作 同一个字符串 , 由于字符串不可变 , 不会出现数据竞争或数据不一致的问题 ; 优化性能 : 对字符串进行 拼接 , 截取 , 查找 等操作时 ,...由于字符串不可变 , 可以提高字符串相关操作的性能 ; 内存回收 : 字符串不可变 , 一旦修改直接废弃原来的字符串创建新字符串 , 废弃的字符串一旦没有引用指向它们 , 其占用的内存会被直接回收 ;...二、字符串不可变 - 示例分析 1、字符串不可变示例分析 解析下面的代码 : // 创建字符串 var str = 'Tom'; // 输出 : Tom
在许多情况下,我们还可以扩展这些标准Error对象,以创建我们自己的自定义Error对象。 属性 Error 对象具有2个属性 name ——设置或返回错误名称。...事例 1.通用的错误 我们可以使用Error对象创建一个新的Error,然后使用throw关键字显式抛出该错误。...instanceof关键字来处理特定的错误类型。...我们还可以通过创建继承Error对象的类来定义自己的错误类型。...Error 的对象类型 现在让我们讨论可用于处理不同错误的不同错误对象类型。 1. EvalError 创建一个error实例,表示错误的原因:与 eval() 有关。
for...of 允许你遍历 Array(数组), String(字符串), Map(映射), Set(集合),TypedArray(类型化数组)、arguments、NodeList对象、Generator...for...of语句在可迭代对象上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。...for of 迭代 前面我们有提到一个词叫“可迭代”数据结构,当用for of迭代普通对象时,也会报一个“not iterable”的错误。...简单来说,for of 语句创建一个循环来迭代可迭代的对象,可迭代的对象内部实现了Symbol.iterator方法,而普通对象没有实现这一方法,所以普通对象是不可迭代的。...简单来说,ES6 为了统一集合类型数据结构的处理,增加了 iterator 接口,供 for...of 使用,简化了不同结构数据的处理。
使用雪花算法随机生成的id,使用Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,数值自动转为了Integer类型,range
文章目录 变量和简单的数据类型 下划线开头的对象 删除内存中的对象 列表与元组 debug 三酷猫钓鱼记录 实际POS机小条打印 使用循环找乌龟 可迭代对象 理解一 理解二 2️⃣什么是迭代器 ✔️...特别鸣谢:木芯工作室 、Ivan from Russia ---- 变量和简单的数据类型 下划线开头的对象 单下划线_ 变量 在Python中,变量可以包含数字、字母、下划线等,所以单独一个下划线...比如列表,元组,字符串,字典等都属于可迭代对象。 理解二 一个对象如果实现了__iter__方法,那么我们称这个对象是可迭代对象。...3️⃣迭代器对象 ✨iter() 列表,元组,字符串等对象都可以使用iter()方法来创建迭代器对象。...---- zip() 用法: 将多个迭代器对象(或可迭代对象)中的元素压缩到一起,并返回一个zip对象 实际上,zip对象既是可迭代对象,也是一个迭代器对象 语法: zip(iterable, .
可以使用[]直接定义列表,也可以使用list()把其他类型的可迭代对象转换为列表,列表推导式也可以用来创建列表,若干标准库函数、内置类型方法以及扩展库函数或方法也会返回列表。...可以使用()直接定义元组,也可以使用tuple()把其他可迭代对象转换为元组,若干标准库函数、内置类型方法以及扩展库方法或方法也会返回元组。...字典(dict):内置类型,常用于表示特定的映射关系或对应关系,可变(不可哈希),元素形式为“键:值”,其中“键”必须是可哈希类型的数据且不重复。...集合(set):内置类型,可变(不可哈希),其中每个元素都必须可哈希且不会重复。...字符串(str):内置类型,可哈希(不可变),可以是空字符串或包含任意多个任意字符的对象,使用单引号、双引号、三单引号、三双引号作为定界符,不同定界符之间可以嵌套。
在迭代时移除List中的元素 首先,看一下在迭代过程中移除List中元素的代码: ? 这个示例代码的输出结果是: ? 这个示例代码中存在一个非常严重的错误。...所以,在迭代的过程中使用索引,将无法从List中正确地删除多个指定的元素。 你可能知道解决这个错误的方式之一是使用迭代器(iterator)。...我们看一个使用在List中使用原始类型的例子: ? 这个示例代码会抛出来一个异常: ? 在Collection使用原始类型是具有很多的类型错误风险的,因为原始类型没有静态类型检查。...可变 vs 不可变 不可变的对象具有非常多的优势,比如简单,安全等。但是,对于每一个不同的值,都需要该类的一个对象。而且,生成很多对象带来的问题就是可能导致频繁的垃圾回收。...除了上述情况,可变对象在其他场景下可能用于不可变对象。比如,传递一个可变的对象到方法内部,利用该对象可以收集多个结果,而不用在多个循环层次中跳进跳出。 9. 继承中的构造函数 ?
for循环 目录: for简介代码格式语法格式可被迭代的数据类型列表字典字符串不可被迭代的数据类型整数浮点值布尔值空值整数转化为范围后可被迭代range(y)range(x, y)range(x, y...整数、浮点数皆不可被迭代,如果强行遍历会发生错误: 整数 整数对象不是可迭代的: numberValue = 2020 for num in numberValue: # TypeError: 'int...: 'float' object is not iterable print(num) 布尔值 布尔对象不可迭代: boolVal = True for b in boolVal: # TypeError...: 'bool' object is not iterable print(b) 空值 空值对象不可被迭代: noneVal = None for n in noneVal: # TypeError...而列表转化不成整数,出点类型错误。
所以,在迭代的过程中使用索引,将无法从List中正确地删除多个指定的元素。 你可能知道解决这个错误的方式之一是使用迭代器(iterator)。...在Collection使用原始类型是具有很多的类型错误风险的,因为原始类型没有静态类型检查。实际上,Set、Set 6. 访问权限 很多的java初学者喜欢使用 public 来修饰类的成员。...可变 vs 不可变 不可变的对象具有非常多的优势,比如简单,安全等。但是,对于每一个不同的值,都需要该类的一个对象。而且,生成很多对象带来的问题就是可能导致频繁的垃圾回收。...所以,在选择可变类还是不可变类时,应该综合考虑后再做抉择。 通常而言,可变对象可以避免创建大量的中间对象。一个非常经典的例子就是链接大量的短String对象为一个长的String对象。...如果使用不可变String类,链接的过程将产生大量的,适合立即被垃圾回收的中间String对象,这将消耗大量的CPU性能和内存空间。
people.forEach(print); 复制代码 注意 Map 是不可迭代的,因此使用 forEach 是没问题的。...因此,除非某些对象需要做这样的类型转换,否则不应该使用 List.from 方法。...,不要使用 cast 做强制转换 通常,当在处理迭代对象或 stream 的时候,我们会对其做一系列的操作。...这里有几条建议能够避免使用强制转换: 正确地定义集合类型,如果集合类型是明确的,那么就应该在集合对象定义时明确类型。...list.add(value); return list.cast(); } 复制代码 在访问元素时进行转换,当进行集合迭代的时候,可以在迭代过程中对每个元素进行类型转换。
ECMAScript 6 新增的“弱集合”(WeakSet)是一种新的集合类型,为这门语言带来了集合数据结构。WeakSet 是 Set 的“兄弟”类型,其 API 也是 Set 的子集。...如果想在初始化时填充弱集合,则构造函数可以接收一个可迭代对象,其中需要包含有效的值。...可迭代对象中的每个值都会按照迭代顺序插入到新实例中: const val1 = { id: 1 }, val2 = { id: 2 }; const ws = new WeakSet([val1...: WeakSet 中对对象的引用不会被考虑进垃圾回收机制,这些值不属于正式的引用,不会阻止垃圾回收,即只要没有其他的对象引用该对象,则该对象就会被回收,而不管它在不在 WeakSet 不可迭代值 因为...因为不可能迭代,所以也不可能在不知道对象引用的情况下从弱集合中取得值。即便代码可以访问 WeakSet 实例,也没办法看到其中的内容。 WeakSet 没有size属性。
可变和不可变 如前所述,Python 中的所有对象都有值、数据类型和标识,其中只有值可以更改。如果你可以改变对象的值,那么它就是一个可变的对象。如果你不能改变它的值,它就是一个不可变的对象。...表 7-2:Python 的一些可变和不可变数据类型 可变数据类型 不可变数据类型 列表 整数 字典 浮点数 集合 布尔值 字节数组 字符串 数组 固定集合 字节 元组 当您修改一个变量时,可能看起来像是在更改对象的值...对于不可变数据类型的对象,如整数、字符串或元组,赋值更简单。...Python 的for循环捕捉到这个异常,知道何时应该停止循环,而不是用这个错误消息让程序崩溃。 迭代器只能对可迭代对象中的项迭代一次。...但是其他术语,比如可迭代对象与迭代器、语法错误与语义错误、字节码与机器码,都有不同的含义,除非你想搞晕你的同事,否则千万不要混淆这些基本概念。 您仍然会发现术语的使用因语言而异,甚至因程序员而异。
迭代器 可迭代就是可以被循环 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带...Iterable:可迭代对象 Iterator:迭代器 而生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了...这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...而使用list是永远不可能存储全体自然数的。...小结 凡是可作用于for循环的对象都是Iterable类型; 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 集合数据类型如list、dict、str等是Iterable
;(3)它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素;(4)它是可迭代对象,却不是迭代器。...这样还有一个好处,即当作为参数的可迭代对象发生变化的时候,作为结果的迭代器因为是消耗型的,不会被错误地使用。...3、range 类型是什么? 以上是我对“为什么range()不产生迭代器”的一种解答。顺着这个思路,我研究了一下它产生的 range 对象,一研究就发现,这个 range 对象也并不简单。...这我倒一直没注意,原来 range 类型居然跟列表和元组是一样地位的基础序列!我一直记挂着字符串是不可变的序列类型,不曾想,这里还有一位不可变的序列类型呢。...4、小结 回顾全文,我得到了两个偏冷门的结论:range 是可迭代对象而不是迭代器;range 对象是不可变的等差序列。 若单纯看结论的话,你也许没有感触,或许还会说这没啥了不得啊。
本篇将要介绍python迭代器 前言 前面我们学过迭代,可以直接用for循环的都是可迭代对象,可用于for循环的数据类型有以下几种: 集合数据类型,如list、tuple、dict、set、str等...可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。...这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...而使用list是永远不可能存储全体自然数的。...小结 凡是可作用于for循环的对象都是Iterable类型; 凡是可作用与next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 集合数据类型如list、dict、str等是Iterable
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可迭代对象,也就是可循环对象。...) print(a) print(b) 执行输出 False True a虽然是一个列表(可迭代对象),但是它没有next()方法,那么a不是迭代器对象。...这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...而使用list是永远不可能存储全体自然数的。...小结 凡是可作用于for循环的对象都是Iterable类型; 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 集合数据类型如list、dict、str等是Iterable
Python是动态语言,变量只是对象的引用,比如对于一个简单的操作:a+b,在C语言中只需要一个机器指令ADD就好,而对于Python而言,变量a和b本身没有类型,而它们的值有类型,所以在相加之前需要先判断类型...Dict是不可变对象,因为使用key来计算value的存储位置,为了保证结果的正确性,作为key的对象不能变,可使用字符串、整数等不可变的对象作为dict中的key。...可变和不可变 综上所述,Python中的不可变对象有:字符串、整数、元组;可变对象有:列表,集合,字典。...对于不可变对象,调用自身的任意方法,并不会改变对象自身的内容,这些方法会创建新的对象并返回,保证了不可变对象本身是永远不可变的。...对于不可变对象作为函数参数,相当于C系语言的值传递; 对于可变对象作为函数参数,相当于C系语言的引用传递。 高级特性 迭代器 Python中的迭代器是什么呢?
领取专属 10元无门槛券
手把手带您无忧上云