Python元组与列表的区别

list和tuple区别

列表和元组非常类似,有时候他们都干一样的事情。他们最大的区别是:

  • 元组一旦被赋值,值不可以被改变,一旦改变就会出错;列表可以任意的更改。
  • 他们用不同的符号表示,赋值的时候,列表用方括号”[]”,而元组用小括号”()”。

列表:列表中的元素应该包括在方括号中,你可以添加、删除或是搜索列表中的元素。由于你可以增加或删除项目,所以列表是可变的数据类型,即这种类型是可以被改变的。

元组:元组和列表十分类似,但是元组是不可变的.也就是说你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。

用法

1.list

1
2
3
li = [1,2,3,4,5] #赋值,使用中括号
li[1] = 11 #修改li[1]的值,此时li变成[1, 11, 3, 4, 5]
li[0] = "LOVE" #此时li变成['LOVE', 11, 3, 4, 5]
  • List(列表) 是 Python 中使用最频繁的数据类型。
  • 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。
  • 列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
# -*- coding: UTF-8 -*-

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表

以上实例输出结果:

['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

2.tuple

  • 元组是另一个数据类型,类似于List(列表)。
  • 元组用”()”标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
# -*- coding: UTF-8 -*-

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')

print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组

以上实例输出结果:

1
2
3
4
5
6
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

tuple不可修改,否则会报错。