python中的元组、元组和列表的区别

元组用tuple来表示

1、元组的表达式 tuple = ()

tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
print(tuple1)
print(type(tuple1))       # 数据类型为<class 'tuple'>

2、当tuple当中只有一个元素的时候需要在末尾加一个逗号

tuple2 = ('china',)
print(tuple2)
print(type(tuple2))       # <class 'tuple'>
tuple1 = ('张三', '李四', '王五')       # 定义了一个元组,有三个成员
tuple2 = ()                            # 定义了一个空元组
tuple3 = ('张三', )                    # 如果元组中只有一个值,那么后面必须写逗号

tuple4 = '张三', '李四', '王五'         # 定义了一个元组,有三个成员
tuple5 = '张三',                       # 如果元组中只有一个值,那么后面必须写逗号
tuple6 = "张三"                        # 定义的不是元组,是字符串
tuple7 = ("张三")                      # 定义的不是元组,是字符串

3、索引位、切片取值

tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
print(tuple1[0])          # 可以使用索引   结果为:china
print(tuple1[2:])         # 可以使用切片   结果为:(888, '中国', ['duoceshi', 666])

4、元组不支持赋值和索引位插入值

tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
tuple1[0] = '666' 
# 不支持赋值    TypeError: 'tuple' object does not support item assignment

tuple1.insert(0,'duoceshi')      # 也不支持插入值
print(tuple1)                    # AttributeError: 'tuple' object has no attribute 'insert'

# 元组没有这个insert函数属性

5、可以对tuple当前的值间接的进行修改

tuple1 = (1,33,99,888,6)
list1 = list(tuple1)          # 通过list方法把元组转换为列表
list1[0] = 'dcs8'             # 索引位改值
tuple2 = tuple(list1)         # 通过tuple方法把列表转换为元组
print(tuple2)
print(type(tuple2))           # 数据类型为元组  <class 'tuple'>
t1 = ('aa', 'bb', 'cc', 'bb')

# 1. 下标
print(t1[0])                      # aa

# 2. index()
print(t1.index('bb'))             # 1

# 3. count()
print(t1.count('aa'))             # 1

# 4. len()
print(len(t1))                    # 4

元组可以被改变吗? 当元组中的元素作为一个整体的时候是不可以被改变的

tuple1 = ('china','dcs8',888,'中国',['duoceshi',666]) 

tuple1[4][1] = 999 

print(tuple1)          # ('china', 'dcs8', 888, '中国', ['duoceshi', 999])

# 当元组中的一个元素为列表的时候可以通过索引或者切片把列表中的值进行修改 
# ==》通过二维数组的方式进行修改 

6、迭代 遍历

tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
for i in tuple1:
    print(i)

7、元组和列表的区别

相同点
  • 都是序列
  • 都可以存储任何数据类型
  • 可以通过索引访问
  • list和tuple都支持索引

  • list和tuple都支持切片操作

  • list和tuple都可以随意嵌套

写法上不同

列表使用 list1=["1","2"]

元组使用() 

是否可变

  • 列表是可变的,而元组是不可变的

  • 可以修改列表的值,但是不修改元组的值

  • 列表是动态的,长度大小不固定,可以随意的增加、删除、修改元素

  • 元组是静态的,长度在初始化的时候就已经确定不能更改,更无法增加、删除、修改

  • 由于列表是可变的,我们不能将列表用作字典中的key, 但可以使用元组作为字典key

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值