一、什么是元祖

元祖是不可变类型(列表是可变类型)

为什么要设计元祖这样不可变类型?因为一旦创建了不可变类型的对象,对象内部的所有数据就不能被修改了,这样避免了

由于修改数据导致的错误。此外,对于不可变类型的对象,在多任务环境下同时操作对象时不需要加锁。

二、元祖的创建

#可以带() 也可以不带
t = ('python',15)
print (t) # ('python', 15)
print (type(t)) # <class 'tuple'> t1 = 'python3',19,20
print (t1) # ('python3', 19, 20)
print(type(t1)) #<class 'tuple'> # 空元祖的创建 t2 = ()
print (t2) # () t2 = tuple()
print (t2) # ()
'''
元祖是不可修改的,但内部元素如果是可变类型,那么该元素的值是可以修改的
'''
t3 = ('python',[1,2,3],15)
t3[1][1] = 9
print (t3) #('python', [1, 9, 3], 15)
 

三、只有一个元素的元组

只有一个元素时,给元祖赋值的时候要加上逗号,不然会按照字符的原有类型赋值

t = (18)
t1 = ('python')
print (type(t)) # <class 'int'> 只有一个元素,不加逗号18为int类型
print (type(t1)) # <class 'str'> 只有一个元素,不加逗号'python'为str类型 t2 = ('python3',)
print (type(t2)) # <class 'tuple'> 只有一个元素,也要加逗号
 

四、多变量的赋值

赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量赋值

a,b = 7,8
print (a,b) # 7 8
print (type(a)) # <class 'int'> a,b = [8,9]
print (a,b) # 8 9
print (type(a)) # <class 'int'> [a,b] = [1,2]
print (a,b) #1 2
print (type(a)) # <class 'int'> (a,b) = 55,11
print (a,b) # #55 11
print (type(a)) # <class 'int'> '''
可以在变量前加入*,这样多余的元素会赋值到这个变量上,如下所示
多余的元素会形成一个列表赋予给变量
'''
*a,b,c = 1,2,3,4,5
print (a,b,c) # [1, 2, 3] 4 5
print (type(a)) # <class 'list'> '''
正常的值替换将a和b的值互换,操作如下。
学习了多变量赋值,可以直接a,b = b,a
原理在于先计算右边的值,然后再赋予给左边
'''
a = 5
b = 6
tmp = a #先设置一个中间变量tmp接收a的值,然后tmp = a,a = b,b = tmp
a = b
b = tmp
print (a,b) #6 5 a = 5
b = 6
a,b = b,a #先计算右边数的值,然后在赋值给左边
print (a,b) # 6 5

最新文章

  1. C语言运算符优先级
  2. quick-cocos2d-x 2.2.3 rc版本中 crypto.md5file() 的C++实现在ANDROID上有BUG
  3. php之登录功能实现。
  4. hibernate-criteria查询
  5. Android中的四种动画(一)
  6. DELPHI控件:DBLookupComboBOX组件的使用方法
  7. prezi破解教程
  8. nyoj 84 阶乘的0
  9. 第七章 管理类型(In .net4.5) 之 使用类型
  10. MVC4.0网站发布和部署到IIS7.0上的方法【转:http://www.th7.cn/Program/net/201403/183756.shtml】
  11. http协议的总结说明
  12. vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
  13. 1)③爬取网易It方面部分新闻
  14. cocos2d-x 3.1 集成 云风pbc
  15. 设计模式Template Method模式(Template Method)摘录
  16. 行列转换之静态、动态、PIVOT方法
  17. windows 下编译 OpenSSL1.0.2l 版
  18. Redis模糊查询
  19. Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前端UI预览及下载
  20. Elasticstarch 相关

热门文章

  1. 使用node查询数据库(mysql)时,日期格式不对的问题。
  2. super this 关键字
  3. Django 单元测试笔记
  4. C# 动态类型 以及 脚本调用(scriptRunTime)
  5. .NET Core快速入门教程 3、使用VS Code开发.NET Core控制台应用程序
  6. Bugku-CTF加密篇之这不是摩斯密码(下载看看吧)
  7. 14. 深入解析Pod对象(一)
  8. java中对于多态的一个实例分析
  9. Jmeter_请求原件之参数化txt
  10. nyoj 34