一、元组 tuple 简介 1、元组引入 列表 List 中的数据是可修改的 , 如果有这样一种场景 , 数据生成后 , 不能修改 , 列表就不适用了 ; 这里引入新的 数据容器 " 元组 tuple..." ; 数据封装 : 元组 中可以 封装 多个 不同类型 的元素 , 该功能与 列表 相同 ; 不可修改 : 元组 一旦定义初始化完成 , 其中的数据就不可更改 ; 元组 可以被理解为 只读 List...列表 ; 2、元组定义 元组 使用小括号 () 定义 , 多个数据元素之间 , 使用逗号隔开 ; 元组 中的 数据元素 可以是 相同数据类型的 , 也可以是 不同数据类型的 ; 元组字面量 定义语法 :...定义只有一个元素的元组 , 需要在这唯一的元素后面加上一个逗号 , 这个逗号必须存在 ; 定义只有一个元素的元组语法 : 元组变量 = (元素,) 如果在这唯一的元素后面没有逗号 , 则定义的就不是元组...元组 中的 元素 数据类型 不限制 , 因此 元组 中也可以存放 元素 类型数据 , 也就是 元组嵌套 ; 代码示例 : # 元组嵌套 t6 = (("Tom", 16), ("Jerry", 18)
大家好,又见面了,我是你们的朋友全栈君。...元组 元组的特点:是一种不可变序列,一旦创建就不能修改 拆包 将元组的元素取出赋值给不同变量 >>> a = ('hello', 'world', 1, 2, 3) >>> str1, str2,...*n = a >>> str1 'hello' >>> str2 'world' >>> n [1, 2, 3] >>> str1, _, n1, n2, _ = a enumerate 解释:用于元组遍历...,获得元组对象,第一个元素是索引,第二个是数值 a = ('1', 2, 35, 'hello') for i in enumerate(a): print(i) >>> (0, '1') >>...> (1, 2) >>> (2, 35) >>> (3, 'hello') list() 元组转换成列表 a = ('1', 2, 35, 'hello') print(list(a)
for 循环 功能 for 循环是一种迭代循环机制,迭代即重复相同的逻辑操作,每次的操作都是基于上一次的结果而进行的。...并且for循环可以遍历任何序列的项目,如一个列表或者一个字符串 语法 for 循环的一般格式如下: for in 注释:variable...为变量,用于控制被迭代的对象;sequence 是可迭代的对象多为列表或者字符串 for循环实例: str="hello" for i in str : print(i) 运行结果:...str[i]) 运行结果: D:\Anaconda3\python.exe D:/PycharmProjects/pythonz/day1/boke.py 1 hu 2 jin 3 xie 4 xu if-else...判断语句可以是任何表达式,任何非零或非空的值均为True。
问题 python 的 sqlite 查询数据返回的是元组类型; 返回到前端就是二维数组; 1.1 效果图 1.1.1 后端打印 1.1.2 前端打印 2....解决办法 2.1 重写连接对象的 row_factory 方法 # 数据转字典 def dict_factory(self, cursor, row): data = {} for...总结 重写 row_factory 方法后,查询数据返回的就是字典! 参考:学习笔记—SQLite3基本命令
日常开发,if-else语句写的不少吧??...当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势...:干掉过多的if-else!!!...本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 融入策略模式; 策略模式+工厂+单例模式,锦上添花; 接下来先附上一段很久以前自己写的业务代码,核心逻辑就是在支付回调中根据用户购买的价格包赋予用户对应的权益...1、优先判断条件,不满足及时中断 这点非常容易理解,就是说在业务逻辑里面,先把不符合条件的给先过滤掉,而不是层层嵌套if-else判断,结合代码图看一下: 2.策略模式改造 先用策略模式替换掉文章开头讲到的
我想谈一谈这个话题是因为我的上一篇博客在 ITEye 上有一些朋友回复,说 if-else 过多的分支可以使用 switch 或者责任链模式等等方式来优化。...而过多 if-else 正是由于在某一个变化的点上,有许多判断条件和结果分支造成的。所以最基本的解决办法就是把多个判断条件合成一个,也就是把若干个分支合成一个。...但是在大多数情况下,条件判断的分支都是无法合并的。所以,我们需要把这个变化点通过别的途径封装起来,而不是采用 if-else。 1....当然,这样的方式经常被用来做从字符串到具体对象的转换。 还有一些朋友说的这个模式那个模式来解决多 if-else 的问题,这些都是正确的,当然本质上也无一例外基于多态来实现的,所以我就不提及了。...这些都不错,至少比那些老说用 switch 来代替 if-else 的有价值多了 :) 最后,对于如此小的一个问题,我要补充说明的一点是,看不得大片 if-else 和看不得大片 new 关键字一样,我觉得这是许多
先铺垫一个小知识,列表的魔法函数 __iadd__ 相当于列表的 extend 函数,但是会返回扩展后的结果: >>> [1,2,3]....你又想了想,Python 是不是搞错了,既然你不支持元组内的元素重新赋值,还让它赋值了,是不是搞错了,你想选择 D。 所以这很 crazy ! 现在来一起梳理一下。...首先,crazy_tuple 是一个元组,元组不可变,是指元组内元素的地址永不改变: >>> crazy_tuple = (["x","y"],) >>> id(crazy_tuple[0]) 140468737595456...我们执行的代码是 crazy_tuple[0] = crazy_tuple[0].__iadd__(["z"]),Python 解释器先执行的是等号右边的部分 crazy_tuple[0]....总结:元组的不可变,在于元组内元素的地址不可变。如果元组内元素是字符串、数字、元组等不可变对象,其内容永久不变,如果元组内元素是是列表、字典、集合等可变对象,其内容可以被改变。
元组并不像数组、对象那样是不可缺少的编程元素,但是, 使用它却能对编写代码带来很多的便利,尤其是当一个函数需要返回多个值的情况下。...对于这种情况, 普遍的做法是定义一个对象,把函数需要返回的值作为对象的属性设置,然后把函数的返回值类型设为这个对象的类型, 函数直接返回这个对象就相当于返回多个值了。...需求本身很简单, 只要让函数返回多个值 , 然而用这种方法却需要事先定义好一个类型, 然后再实例化,再设置实例属性, 最后返回, 这样做的编码效率也未免太低了些。...需要注意是的每一个元组类型都是唯一的, (int,bool),(bool,int),(string,double)虽然都是二元组, 然而它们却是不同的元组, 假如把这里的某一个元组作为函数的返回值, 在可读性和安全性方面虽然不如前面讲的第一种使用自定义类型的方案..., 然而却比第二种使用map的方案要好的多, 至少使用元组能知道函数会返回几个值, 这些值又分别是什么类型, 而且它还有第二种使用map的方案编码简单快捷的优势。
# 元组 元组(Tuple)用于将多个对象保存到一起。你可以将它们近似地看作列表,但是元组不能提供列表类能够提供给你的广泛的功能。...元组的一大特征类似于字符串,它们是不可变的,也就是说,你不能编辑或更改元组。元组是通过特别指定项目来定义的,在指定项目时,你可以给它们加上括号,并在括号内部用逗号进行分隔。...元组通常用于保证某一语句或某一用户定义的函数可以安全地采用一组数值,意即元组内的数值不会改变。...# 代码 # 元组 ''' 推荐使用括号来指明元组的开始和结束 尽管括号是一个可选选项 明了胜过晦涩,显式优于隐式 ''' zoo = ('python', 'elephant', 'penguin')
⭐️ 什么是元组元组是一个和列表和相似的数据类型,两者拥有着基本相同的特性,但是也有很多不同的地方。...元组与列表一样,都是一种可以存储多种数据结构的队列同样的元组也是一个有序的,且元素可以重复的集合⭐️ 元组的定义与创建在 Python 中,tuple 代表着元组这一类型,也可以用它定义一个元祖在 Python...中,元组是一个无限制长度的数据结构在 Python 中,元组中的元素存在于一个 () 小括号内,如 name = ('lily', 'jack')⭐️ 元组与列表的区别元组比列表占用的资源更小列表创建后...) 表示的是一个元组,元组中包含一个整数 123(123) 表示的是一个带括号的表达式,整数 123 嵌入括号中两者是不相同的,示例如下:>>> t = (123, )>>> i = (123)>>>...元组 上就不可以使用,但是 index(item) 方法 可以使用;index(item) 方法在元组中查找指定元素 item,如果找到元素 item,则返回元素 item 的索引;如果找不到,则抛出异常
Groovy元组是有序的,不变的元素列表。Groovy有自己的groovy.lang.Tuple类。我们可以通过构造函数Tuple提供需要包含在其中的所有元素来创建一个实例Tuple。...我们甚至不能更改元组中的元素,因此它是完全不变的。这使得它非常适合用作需要返回多个值的方法的返回值。Groovy还提供了一个Tuple2仅可用于两个元素的元组实例的类。元素在Tuple2实例中键入。...在以下示例中,我们看到Tuple和Tuple2类的不同用法: package com.FunTester.demo import com.fun.frame.SourceCode class demo5
本篇文章主要总结一下自己在实际开发中如何避免大面积的 if-else 代码块的问题。补充说明一点,不是说 if-else 不好,而是多层嵌套的 if-else 导致代码可读性差、维护成本高等问题。..., List newDataList) { if (CollectionUtils.isEmpty(newDataList)) { // 提前判断,返回业务逻辑... void getCityNull(List newDataList, List oldDataList) { // 提前判断,返回业务逻辑...; } return false; }).collect(Collectors.toList()); // 提前判断,返回业务逻辑...技巧五:设计模式 设计模式对于 if-else 的优化,我个人觉得有些重,但是也是一种优化方式。设计模式适合使用在大的业务流程和场景中使用,针对代码块中的 if-else 逻辑优化不推荐使用。
等到编程能力渐渐提升之后,再回过头去看曾经写过的满屏if-else时,脑海里只有一个画面,全都是翔..... 可能初学者都会忽略掉一点,其实if-else是一种面向过程的实现。...虽说避免出现过多的if-else,但是,却会增加很多额外的类,我总觉得,很不实用,只能当做某种模式的学习即可。...可以替换大量的if-else语句,且具备较好的可读性与扩展性,同时能显得轻量化,我比较推荐使用策略枚举来消除if-else。...在本文的案例里,每扇大门里的toDo(),根据不同策略模式可得到不同字符串返回,例如,"今天上英语课"、"今天上语文课",等等。...里使用策略枚举来消除替换,总而言之,使用策略枚举可以很灵活处理各种复杂判断,且可读性与扩展性都比较好,它更像是函数式编程,即传进一个参数,就可以得到对应模式下返回的数值。
使用早返回(Early Return):尽可能早地返回,避免嵌套的if-else。...使用查找表:对于固定数量的条件分支,可以使用查找表(例如字典或哈希表)来映射条件和对应的行为。...使用函数或方法:将每个条件分支的逻辑封装到不同的函数或方法中,然后在if-else中调用这些函数。...class NoFunctionExample { public void handleUserType(String userType) { // 没有使用函数封装,而是直接在if-else...通过不同的功能拆分成不同的函数。
要创建简单的数据结构 可以使用元组 存储数据 使用圆括号 创建元组 address = ('北京','上海','天津','广州','重庆') 即使没有圆括号 python通常也能识别元组 number... = (1) # type = int num = (1,) # type = tuple 和列表一样 也可以使用数字索引提取元素中的值 然而最常用的方法是将元组解包为一组变量: number =...(索引 切片,连接)但是创建元组后不能修改内容(无法替换 删除现有元组中的元素 或者 插入新元素) 说明: 最好把元组看做由多部分组成的对象 而不是可在其中插入或者删除项的不同的集合 元组修改必须使用切片和连接运算符...() 2,创建1个值的元组 可使用:tuple1 = str, 或者 tuple1 = (str,) 3,常用的提取值的方式 切片或者索引提取或者将元组解包为一组变量 name ,age,add =...date; 5,元组不可以使用常规方法被修改或者添加项 但是可以使用切片运算符和连接用算符进行此操作 6,*在元组中可以作为重复运算符 7,同时使用元组和列表的用法
方法一:来自http://biancheng.dnbcw.net/python/417264.html
前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。...优化方案一:提前return,去除不必要的else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。...,可以优化为一行代码 String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc(); 优化方案四:合并条件表达式 如果有一系列条件返回一样的结果...比较多,是因为非空判断导致的,这时候你可以使用java8的Optional进行优化。...表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或case)来把它们找出来的方法。 以下的demo,把map抽象成表,在map中查找信息,而省去不必要的逻辑语句。
前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。 ?...优化方案一:提前return,去除不必要的else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。...,可以优化为一行代码 String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc(); 优化方案四:合并条件表达式 如果有一系列条件返回一样的结果...比较多,是因为非空判断导致的,这时候你可以使用java8的Optional进行优化。...表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。以下的demo,把map抽象成表,在map中查找信息,而省去不必要的逻辑语句。
之前的文章中介绍了Python中的字符串的操作,接下来了解Python中的另一个数据类型:元组(tuple) 元组一般用()标识,是一种有序的数据类型。里面可以存储各种格式的数据。...访问元组和访问列表类似 print(tup1[0]) print(tup1[2:4]) 元组的值是不可以修改的(不支持增删改元素)。...与元组打包相反的操作是拆包,就是将元组中的元素取出,分别赋 值给不同的变量。...(1,2) b = (3,4) print(a+b) # (1, 2, 3, 4) 元组的其他用法: 作为函数的传参,使用*args的格式。...比如,我之前写过的文章中,socket套接字编程的时候,访问服务器的ip+端口,就可以以元组的形式传进去。
tup = (1,2,3,4) for tup_index in range(len(tup)): print("index:",tup_index,"...
领取专属 10元无门槛券
手把手带您无忧上云