文章目录

  • 前言
  • 一、列表和元组的区别
  • 二、列表和元组定义(转换)。
  • 三、列表和元组的访问符号和方法:[]和index(x)、count(x)
  • 四、列表和元组的操作函数(外部函数)
  • 总结



前言

列表list、元组tuple都是python的数据集合类型。
简单的区别:列表装载一组数据是变量;元组装载一组数据是常量。

一、列表和元组的区别

列表中存放数据可以修改,元组实际上是一种受限的列表,即存放的数据仅用作读取而不能修改。为了显性区别避免编程误操作,我们会把不需要修改仅做读作用的一组数据定义为元组类型。

举例:
四大名著list1=[‘西游记’,‘红楼梦’,‘三国演义’,‘水浒传’]。如果我们本意不需要修改,list1存放仅作读取的数据,但是我们却定义为可以修改list类型,在编码过程有可能有误操作,例如进行了一个list1.pop(),这显然是很糟糕事情,而且程序也不会报错。
为了防止这种情况,我们规定(‘西游记’,‘红楼梦’,‘三国演义’,‘水浒传’)定义一种不能修改其中元素的序列叫元组,这样就避免误操作,程序也会报错。

数据类型

tuple

基本定义

有序不可以变的序列

程序定义

tuple1=(‘beijing’,‘shanghai’)

访问元素

a=tuple1[0];而不是tuple1(0)。元组和列表都是使用取值符号[]

list()转换为列表

tuple2=List(tupl1)

数据类型

list

基本定义

有序可变的序列

程序定义

list1=[‘beijing’,‘shanghai’]

访问元素

a=list1[0] 元组和列表都是使用取值符号[]

tuple()转换为列表

list2=tuple(list1)

二、列表和元组定义(转换)。

列表list属于有序可变的数据类型,使用方括号[]作为定义符号。
元组tuple属于有序不可变的类型,使用中括号()作为定义符号。

#定义列表
l1=['beijing','shanghai'] #直接通过符号括起来定义
print(l1)       # ['beijing', 'shanghai']
#定义元组
t1=('beijing','shanghai') #直接通过符号括起来定义
print(t1)       # ('beijing', 'shanghai')
#使用列表的内部函数list()定义一个列表。
#比如:使用元组生成列表
l1=list(('beijing','shanghai')) 
print(l1)       # ['beijing', 'shanghai')
#使用列表的内部函数tuple()定义一个元组。
#比如:使用列表生成元组
t1=tuple(['beijing','shanghai'])
print(t1)       # ('beijing', 'shanghai')

三、列表和元组的访问符号和方法:[]和index(x)、count(x)

[]取值
index()按值查找索引号
count()按值统计相同的个数

# 访问元素,列表和元组一样用[],而不是元组使用l1(1)。
l1=['beijing','shanghai']
t1=('beijing','shanghai')
print(l1[1])    # shanghai
print(t1[1])    # shanghai
# index(x)找出第一个x,返回其索引号
t1=(1,2,3,2)#使用元组来举例,列表也是一样
print(t1.index(2))  # 1
# count(x)统计x的出现次数
print(t1.count(2)) # 2

四、列表和元组的操作函数(外部函数)

del sum max min len(list tuple set都适用)

t1=(1,2,3,2)
print(sum(t1))      # 8
print(max(t1))      # 3
print(min(t1))      # 1
print(len(t1))      # 4
del tuple6

总结

元组就是受限的列表。
两者区别在于:
1、列表是可变,元组是不可变。
2、不会变化,不需要变化,不能变化,不想被误操作的一组数据使用元组来定义。
注意
1、使用定义符合不一样,tuple 是使用(),list使用[]。
2、元组不能通过t[index]=x修改数值,也不能使用append。
3、如果把列表当作元组的元素时候,列表的内容可以变化,就是说元组定义是元素不可以变,但是元素是一个列表一个变量,他就管不了。