首页 > 技术文章 > python 元组tuple介绍,使用。

ZXF6 2020-12-01 14:09 原文

原文 https://blog.csdn.net/ruanxingzi123/article/details/83184909

 

 

一  是什么?

# python 元组tuple?
'''
    元祖tuple是什么?
        是不可变的的对象  因为不可变,安全性高。
        可以使函数返回多个值
     用来记录多个值,当值没有改变的需求时。
     元祖是有序的,不可变的。【元祖的指向不可变!】
  
''' # 返回多个值测试 def people(): name = 'haha' age = 14 return name, age # 返回两个值 name,age = people() # 获取参数 print(name) print(age)

 

 

  

# python 元组tuple?
'''
    元祖tuple是什么?
        是不可变的的对象  因为不可变,安全性高。
        可以使函数返回多个值
'''

# 返回多个值测试
def people():
    name = 'haha'
    age = 14
    return name, age # 返回两个值

haha = people() # 获取参数, 直接用haha来接收。

print(haha)         # 看是否能够获得name age 的值
print(type(haha))   # 查看haha是什么类型

 

 

 

  

二 元祖的定义

 

三,不可变性

 

四 元祖的更新和删除

# python 元组tuple?
'''
    元祖tuple是什么?
        是不可变的的对象  因为不可变,安全性高。
        可以使函数返回多个值
        在()内用多个逗号分隔开多个任意类型的元素
        元组用来记录多个值,当值没有改变的需求时,用元组更合适。
        元组是有序的、不可变的(虽然数据不可变,但是数据的数据是可以改变的)

    定义方式?
        在()内用多个逗号分隔开多个任意类型的元素
        demo = (1,2,3)
        demo2 = (1,)  逗号的存在,表明这是一个元祖
        空元祖?
        demo3 = ()

    元祖的更新和删除 ?
    更新  不能直接在元祖上更新,通过copy一个现有的元祖片段来构造一个新的元祖。
    删除  元祖不可变,无法单独删除元素,通过使用切片的方式更新元祖,间接删除。
'''

test = (1, 2, 3)
print(test)  # (1, 2, 3)

# 更新  试图通过构造的方式   把元素4 加入到元祖test中
test = test[:0] + (4,) + test[0:]
print(test)     # (4, 1, 2, 3)

# 删除 切片的方式删除元素[1]
test = test[:1] + test[2:]
print(test)   # (4, 2, 3)  通过更新和删除  就好像是将元祖中的元素【0】 修改为4


# 把元祖中的元素都删除掉
test = test[:0] + test[3:]
print(test)

 

 

 

 

五 del  删除元祖

 

 

 

 

六  关系判断的使用  in , not in

 

七  如何理解元祖的指向不可变?

'''
一 元祖中的指向
    这里定义了一个元祖 a
    里面有三个元素
    for 循环打印
    1                   指向 1   int
    2                   指向 2   int
    [4, 5, 6]           指向 3   list

    可以看到 在 元祖a 中的数据类型是 两个int 一个list

    元祖的不可变性在于,指向不可变,指向是int。那就是不可变的 !
        你非要  a [0] = 2; 就是报错的
        然而  list 是可变的啊
        所以  a[2][o] =  888  是没有问题的。

二  python中的数据类型
        python中str,int,char,tuple本身就不可变,
        list,dict可变。
'''
a = (1, 2, [4, 5, 6])

print(type(a))  # 元祖的类型 typle

for l in a:
    print(l)

# 不可变测试
a[0] = 1111

 

 

 

 

测试list的可变行

'''
一 元祖中的指向
    这里定义了一个元祖 a
    里面有三个元素
    for 循环打印
    1                   指向 1   int
    2                   指向 2   int
    [4, 5, 6]           指向 3   list

    可以看到 在 元祖a 中的数据类型是 两个int 一个list

    元祖的不可变性在于,指向不可变,指向是int。那就是不可变的 !
        你非要  a [0] = 2; 就是报错的
        然而  list 是可变的啊
        所以  a[2][o] =  888  是没有问题的。

二  python中的数据类型
        python中str,int,char,tuple本身就不可变,
        list,dict可变。
'''
a = (1, 2, [4, 5, 6])

print(type(a))  # 元祖的类型 typle

for l in a:
    print(l)

# 改变元祖中的 list
a[2][0] = 888
print(a)

 

 

推荐阅读