目录
1 元组的声明
元组:元组是一组有序的数,用小括号()来表示,元组的元素跟元素之间用英文逗号隔开,元组跟列表的最大区别是元组中的单个元素不能增删改(元组是不可变的)。元组通常用于保护数据而存在。
元组的声明:元组通过()或tuple()来声明。
声明元组:
<span style="background-color:#f8f8f8"><span style="color:#aa5500">#空元组</span> <span style="color:#000000">tupl0</span>=() <span style="color:#3300aa">print</span>(<span style="color:#3300aa">type</span>(<span style="color:#000000">tupl0</span>),<span style="color:#3300aa">len</span>(<span style="color:#000000">tupl0</span>)) <span style="color:#aa5500">#非空元组</span> <span style="color:#000000">tup1</span>=(<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">5</span>) <span style="color:#3300aa">print</span>(<span style="color:#3300aa">type</span>(<span style="color:#000000">tup1</span>),<span style="color:#3300aa">len</span>(<span style="color:#000000">tupl1</span>)) <span style="color:#aa5500">#用tuple实例化对象来声明元组</span> <span style="color:#000000">num</span>=<span style="color:#116644">123</span> <span style="color:#000000">str1</span>=<span style="color:#aa1111">"你好吗"</span> <span style="color:#000000">list1</span>=[<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">4</span>,<span style="color:#116644">5</span>] <span style="color:#3300aa">print</span>(<span style="color:#3300aa">tuple</span>(<span style="color:#000000">num</span>)) <span style="color:#aa5500"># 报错</span> <span style="color:#3300aa">print</span>(<span style="color:#3300aa">tuple</span>(<span style="color:#000000">str1</span>)) <span style="color:#3300aa">print</span>(<span style="color:#3300aa">tuple</span>(<span style="color:#000000">list1</span>))</span>
声明一个只有一个元素的元组:需要加一个逗号来表明这是一个单元素的元组,否则解释器会理解成在外面加了一个普通的括号,打印类型为单个元素的类型。
<span style="background-color:#f8f8f8"><span style="color:#aa5500">#一个元素的元组</span> <span style="color:#000000">tupl2</span> =(<span style="color:#116644">2</span>,) <span style="color:#000000">tupl3</span> =(<span style="color:#aa1111">"nihao"</span>,)</span>
2 元组的作用
可以实现对数据进行保护;
在操作不定长参数函数时,其参数的类型就是一个元组,所以可以直接将元组进行传入;
在函数或者方法中返回值可以返回多个值,默认是把多个值以元组的形式返回。
3 元组和列表的区别(面试问题)
列表用[]表示,元组用()表示;
列表可变,元组不可变:列表中的元素是可变的,可以对元素进行增删改操作;元组中的元素是不可变的,不能对元素进行增删改操作。
4 元组的切片
元组的切片(有序的,可以使用下标索引),切片出来的数据还是保存在元组里的规则跟字符串、列表一致
<span style="background-color:#f8f8f8"><span style="color:#000000">tup1</span>=(<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,(<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">3</span>),<span style="color:#116644">5</span>,<span style="color:#116644">999</span>,<span style="color:#aa1111">'fgjgjfs'</span>,[<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">3</span>]) <span style="color:#aa5500"># 不在范围内</span> <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>[<span style="color:#116644">1111</span>:]) <span style="color:#aa5500"># 取下标为2的元素</span> <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>[<span style="color:#116644">2</span>]) <span style="color:#aa5500"># 取下标为1开始,终止值默认到最后,步长默认为1</span> <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>[<span style="color:#116644">1</span>:]) <span style="color:#aa5500"># 倒序?</span> <span style="color:#aa5500"># 取元组中的元组里的数据</span></span>
5 元组的常用操作
元组的修改(不是修改,实际是形成了一个新的元组)
a. 转成列表间接使用列表的方法来操作,最后再转成元组
<span style="background-color:#f8f8f8"><span style="color:#3300aa">print</span>(<span style="color:#3300aa">tuple</span>([<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">3</span>])) <span style="color:#3300aa">print</span>(<span style="color:#3300aa">tuple</span>(<span style="color:#aa1111">"youseeyou"</span>)) <span style="color:#000000">list1</span>=<span style="color:#3300aa">list</span>(<span style="color:#000000">tup1</span>) <span style="color:#000000">list1</span>.<span style="color:#000000">insert</span>(<span style="color:#000000">list1</span>.<span style="color:#000000">index</span>(<span style="color:#116644">5</span>)<span style="color:#981a1a">+</span><span style="color:#116644">1</span>,<span style="color:#116644">100</span>) <span style="color:#000000">tup1</span>=<span style="color:#3300aa">tuple</span>(<span style="color:#000000">list1</span>) <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>)</span>
b. 也可以通过切片再拼接的方式实现。注意对字符串、列表、元组都可以用+来实现拼接操作。
<span style="background-color:#f8f8f8"><span style="color:#333333"> <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>[:<span style="color:#116644">4</span>]<span style="color:#981a1a">+</span>(<span style="color:#116644">100</span>,)<span style="color:#981a1a">+</span><span style="color:#000000">tup1</span>[<span style="color:#116644">4</span>:])</span></span>
元组的删除
元组只能用
del
来删除整个元组<span style="background-color:#f8f8f8"><span style="color:#000000">tup1</span>=(<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,(<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">3</span>),<span style="color:#116644">5</span>,<span style="color:#116644">999</span>,<span style="color:#aa1111">'fgjgjfs'</span>,[<span style="color:#116644">1</span>,<span style="color:#116644">2</span>,<span style="color:#116644">3</span>]) <span style="color:#770088">del</span> <span style="color:#000000">tup1</span> <span style="color:#3300aa">print</span>(<span style="color:#000000">tup1</span>)</span>
6 元组的常用函数
len()
max()
min()
其中max()和min()两个函数要保证比较的元素类型一致