首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】元组 tuple ① ( 元组 tuple 简介 | 元组不可修改 | 元组定义 | 定义只有一个元素元组 | 元组嵌套 )

一、元组 tuple 简介 1、元组引入 列表 List 中数据是可修改 , 如果有这样一种场景 , 数据生成后 , 不能修改 , 列表就不适用了 ; 这里引入新 数据容器 " 元组 tuple..." ; 数据封装 : 元组 中可以 封装 多个 不同类型 元素 , 该功能与 列表 相同 ; 不可修改 : 元组 一旦定义初始化完成 , 其中数据就不可更改 ; 元组 可以被理解为 只读 List...列表 ; 2、元组定义 元组 使用小括号 () 定义 , 多个数据元素之间 , 使用逗号隔开 ; 元组 数据元素 可以是 相同数据类型 , 也可以是 不同数据类型 ; 元组字面量 定义语法 :...定义只有一个元素元组 , 需要在这唯一元素后面加上一个逗号 , 这个逗号必须存在 ; 定义只有一个元素元组语法 : 元组变量 = (元素,) 如果在这唯一元素后面没有逗号 , 则定义就不是元组...元组 元素 数据类型 不限制 , 因此 元组 中也可以存放 元素 类型数据 , 也就是 元组嵌套 ; 代码示例 : # 元组嵌套 t6 = (("Tom", 16), ("Jerry", 18)

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

帮你干掉过多if-else

日常开发,if-else语句写不少吧??...当逻辑分支非常多时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡,总想着解锁新姿势...:干掉过多if-else!!!...本文将介绍三板斧手段: 优先判断条件,条件不满足,逻辑及时中断返回; 融入策略模式; 策略模式+工厂+单例模式,锦上添花; 接下来先附上一段很久以前自己写业务代码,核心逻辑就是在支付回调中根据用户购买价格包赋予用户对应权益...1、优先判断条件,不满足及时中断 这点非常容易理解,就是说在业务逻辑里面,先把不符合条件给先过滤掉,而不是层层嵌套if-else判断,结合代码图看一下: 2.策略模式改造 先用策略模式替换掉文章开头讲到

43941

过多 if-else 分支优化

我想谈一谈这个话题是因为我上一篇博客在 ITEye 上有一些朋友回复,说 if-else 过多分支可以使用 switch 或者责任链模式等等方式来优化。...而过多 if-else 正是由于在某一个变化点上,有许多判断条件和结果分支造成。所以最基本解决办法就是把多个判断条件合成一个,也就是把若干个分支合成一个。...但是在大多数情况下,条件判断分支都是无法合并。所以,我们需要把这个变化点通过别的途径封装起来,而不是采用 if-else。 1....当然,这样方式经常被用来做从字符串到具体对象转换。 还有一些朋友说这个模式那个模式来解决多 if-else 问题,这些都是正确,当然本质上也无一例外基于多态来实现,所以我就不提及了。...这些都不错,至少比那些老说用 switch 来代替 if-else 有价值多了 :) 最后,对于如此小一个问题,我要补充说明一点是,看不得大片 if-else 和看不得大片 new 关键字一样,我觉得这是许多

53210

疯狂元组

先铺垫一个小知识,列表魔法函数 __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]....总结:元组不可变,在于元组内元素地址不可变。如果元组内元素是字符串、数字、元组等不可变对象,其内容永久不变,如果元组内元素是是列表、字典、集合等可变对象,其内容可以被改变。

42210

Java元组使用

元组并不像数组、对象那样是不可缺少编程元素,但是, 使用它却能对编写代码带来很多便利,尤其是当一个函数需要返回多个值情况下。...对于这种情况, 普遍做法是定义一个对象,把函数需要返回值作为对象属性设置,然后把函数返回值类型设为这个对象类型, 函数直接返回这个对象就相当于返回多个值了。...需求本身很简单, 只要让函数返回多个值 , 然而用这种方法却需要事先定义好一个类型, 然后再实例化,再设置实例属性, 最后返回, 这样做编码效率也未免太低了些。...需要注意是的每一个元组类型都是唯一, (int,bool),(bool,int),(string,double)虽然都是二元组, 然而它们却是不同元组, 假如把这里某一个元组作为函数返回值, 在可读性和安全性方面虽然不如前面讲第一种使用自定义类型方案..., 然而却比第二种使用map方案要好的多, 至少使用元组能知道函数会返回几个值, 这些值又分别是什么类型, 而且它还有第二种使用map方案编码简单快捷优势。

2K80

Python中元组

# 元组 元组(Tuple)用于将多个对象保存到一起。你可以将它们近似地看作列表,但是元组不能提供列表类能够提供给你广泛功能。...元组一大特征类似于字符串,它们是不可变,也就是说,你不能编辑或更改元组元组是通过特别指定项目来定义,在指定项目时,你可以给它们加上括号,并在括号内部用逗号进行分隔。...元组通常用于保证某一语句或某一用户定义函数可以安全地采用一组数值,意即元组数值不会改变。...# 代码 # 元组 ''' 推荐使用括号来指明元组开始和结束 尽管括号是一个可选选项 明了胜过晦涩,显式优于隐式 ''' zoo = ('python', 'elephant', 'penguin')

83640

满屏if-else,看我怎么消灭你!

本篇文章主要总结一下自己在实际开发中如何避免大面积 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 逻辑优化不推荐使用。

97661

策略+枚举 优雅解决 if-else

等到编程能力渐渐提升之后,再回过头去看曾经写过满屏if-else时,脑海里只有一个画面,全都是翔..... 可能初学者都会忽略掉一点,其实if-else是一种面向过程实现。...虽说避免出现过多if-else,但是,却会增加很多额外类,我总觉得,很不实用,只能当做某种模式学习即可。...可以替换大量if-else语句,且具备较好可读性与扩展性,同时能显得轻量化,我比较推荐使用策略枚举来消除if-else。...在本文案例里,每扇大门里toDo(),根据不同策略模式可得到不同字符串返回,例如,"今天上英语课"、"今天上语文课",等等。...里使用策略枚举来消除替换,总而言之,使用策略枚举可以很灵活处理各种复杂判断,且可读性与扩展性都比较好,它更像是函数式编程,即传进一个参数,就可以得到对应模式下返回数值。

30560

python中元组

要创建简单数据结构 可以使用元组 存储数据  使用圆括号 创建元组 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,同时使用元组和列表用法

1.1K10

优化if-else代码八种方案!

前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码八种方案。 ?...优化方案一:提前return,去除不必要else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。...,可以优化为一行代码 String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc(); 优化方案四:合并条件表达式 如果有一系列条件返回一样结果...比较多,是因为非空判断导致,这时候你可以使用java8Optional进行优化。...表驱动方法是一种使你可以在表中查找信息,而不必用很多逻辑语句(if或Case)来把它们找出来方法。以下demo,把map抽象成表,在map中查找信息,而省去不必要逻辑语句。

2.4K50

Python编程 元组创建

座右铭:低头赶路,敬事如仪 个人主页:网络豆主页​​​​​​ 目录 前言 一.元组知识点 二.元组(tuple) 1.元组介绍(掌握) 2.元组创建(掌握) 3.元组与列表相同操作(熟悉)...---- 前言 本章将会讲解Python编程中元组和他创建。...一.元组知识点 元组介绍 元组创建 元组与列表相同操作 元组中不允许操作 元组与列表之间转换 二.元组(tuple) 1.元组介绍(掌握) 元组也是 序列结构,但是是一种 不可变序列...除了在内部元素不可修改区别外,元组和列表用法差不多。 2.元组创建(掌握) 创建一个元组,只要把 逗号 分隔 不同数据元素 使用 小括号 括起来即可。...(tu2))) # reversed:内置反转类 print(sorted(tu2)) # 升序,返回list tu3 = (1, 2, 3) tu4 = (2

32030

优化if-else代码八种方案

前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码八种方案。...优化方案一:提前return,去除不必要else 如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。...,可以优化为一行代码 String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc(); 优化方案四:合并条件表达式 如果有一系列条件返回一样结果...比较多,是因为非空判断导致,这时候你可以使用java8Optional进行优化。...表驱动方法是一种使你可以在表中查找信息,而不必用很多逻辑语句(if或case)来把它们找出来方法。 以下demo,把map抽象成表,在map中查找信息,而省去不必要逻辑语句。

62520

该不该扼杀过多if-else

面对过多if-else,代码可能看起来比较冗余,搞不好又是一张被人到处转发“我们项目几百几千行if”图。但是经过各种设计模式和封装,if大大减少,但可读性可能稍微降低了,而且比较抽象。...那我们应该如何取舍呢 抛开其他因素,如果if-else过多,可读性也许会好也可能会降低,可维护性也是或高或低;如果if-else少,代码高度抽象,可读性会低或者不变,可维护性可能会高也可能会低。...当条件有严格顺序要求、无规律可循,不建议强行减少if-else if条件有嵌套 嵌套实际上就是平铺增强,平铺嵌套平铺,我们可以当作是多个if平铺条件复杂情况来看。...如果没有规律、也不是逻辑侧重点,那么就不建议减少if了 总结 条件简单,执行语句单一,强烈建议减少if-else来优化,用条件驱动结果(&& ||三元或者是自己写小逻辑) 条件简单,执行语句复杂,...可保持现状或者换成switch,如果不复杂可以使用map映射 条件复杂,执行语句单一,强烈建议减少if-else来优化;如果执行语句也复杂,当条件可以模块化且没有顺序要求,比较建议优化。

61110
领券