一、元组:

1、定义:

内存图:

2、基本操作

3、元组作用:

4、元组基础知识代码

# 1. 创建空元组

t01=()

t02=tuple()

#2. 创建具有默认值的元组

t01= (1,2,3)

t01= tuple("abcd")

t01= (1,2,[4,5])

print(t01)

# 修改

# t01[2] = 100元组元素不能修改,报错

t01[2][0] = 100# 修改的是元素第三个元素(列表)的元素.

#3. 获取元素(索引 / 切片)

print(t01[:2])

# 获取元组所有元素for item int01:

print(item)

# 倒序获取元组所有元素for i in range(len(t01)-1, -1,-1):

print(t01[i])

t02= ("a","b")

l02= ["a","b"]

t03=t02

l03=l02

t02+= ("c","d") # 创建了新元组对象,改变了t02存储的地址.

l02+= ["c","d"] # 将["c","d"]追加到原列表中.

print(t02) # ('a', 'b', 'c', 'd')

print(t03) # ('a', 'b')

print(l03) # ['a', 'b', 'c', 'd']

# 如果元组只有一个元素,必须多写一个逗号,否则视为普通对象,不是元组对象.

t04= (1,)

print(t04)

5、实例:

(1)根据月份,计算天数

#month = int(input("请输入月份:"))#if month < 1 or month > 12:#print("输入有误")#elif month == 2:#print("28天")## elif month == 4 or month == 6 or month == 9 or month == 11:#elif month in (4,6,9,11):#print("30天")#else:#print("31天")

month= int(input("请输入月份:"))if month < 1 or month > 12:print("输入有误")else:#将每月的天数,存入元组.

day_of_month = (31,28,31,30,31,30,31,31,30,31,30,31)print(day_of_month[month - 1])

(2)在控制台中输入月,日,计算这是一年的第几天。例如输入3月5日,计算天数为?

#方法一#month = int(input("请输入月份:"))#day = int(input("请输入天:"))#day_of_month = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)#result = 0## 累加前几个月#for i in range(month - 1):#result += day_of_month[i]## 累加当月#result += day#print(result)

#方法二

month = int(input("请输入月份:"))

day= int(input("请输入天:"))

day_of_month= (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)#累加前几个月

result = sum(day_of_month[:month - 1])#累加当月

result +=dayprint(result)

二、字典:

1、定义

内存图:

2、基本操作:

3、字典推导式

4、字典VS列表

5、字典基础代码

#创建空字典

d01 ={}

d02=dict()

d01= {"a":"A","b":"B"}#d01 = dict("ab") # 分不清key value

d01 = dict([(1,2),(3,4)]) #{1: 2, 3: 4}

#第一次增加

d01["c"] = "C"

#第二次修改

d01["c"] = "CC"

#读取元素(如果不存在则异常)#建议:在字典中读取元素,先判断存在,在进行读取.

if "d" ind01:print(d01["d"])print(d01)#删除

del d01["c"]print(d01)#获取字典中所有元素:

for key ind01:print(key)print(d01[key])#获取字典中所有记录(元组)

for item ind01.items():print(item[0]) #key

print(item[1]) #value

for k,v ind01.items():print(k) #key

print(v) #value

#获取所有键

for k ind01.keys():print(k)#获取所有值

for v ind01.values():print(v)

6、实例:

(1)在控制台中录入一个字符串,打印这个字符串中的字符以及各字符出现的次数

str_input = input("请输入一个字符串:")#key: 字符 value:次数

result ={}#(1)逐一判断字符,出现的次数.

for item instr_input:#(2)如果没有统计过该字符串

if item not inresult:

result[item]= 1

else:#(3)否则,次数增加

#result[item] = result[item] + 1

result[item] += 1

print(result)

(2)给定一个列表["张三丰","无忌","赵敏"] ,以字典的形式输出键为列表元素,值为列表元素长度,形如:{"张三丰":3,"无忌":2,"赵敏",2}

#方法一

list01 = ["张三丰", "无忌", "赵敏"]

dict01={}for item inlist01:

dict01[item]=len(item)#方法二

dic02 = {item: len(item) for item inlist01}print(dic02)

(3)# 练习:

["张三丰", "无忌", "赵敏"]

[101, 102, 103]

(1) 根据两个列表形成一个字典:key姓名,value房间号

(2) 将字典的键与值进行翻转.即:key房间号,value姓名

list01 = ["张三丰", "无忌", "赵敏"]

list02= [101, 102, 102]#循环方式#dict01 = {}#for i in range(len(list01)):#dict01[list01[i]] = list02[i]

#字典推导式

dic02 = {list01[i]: list02[i] for i inrange(len(list01))}print(dic02)#循环方式(值不重复)#dic03 = {}#for key,value in dic02.items():#dic03[value] = key

#字典推导式(值重复)#{101: '张三丰', 102: '赵敏'} 张无忌与赵敏同居,导致key重复,无忌被覆盖.

dic03 = {value: key for key, value indic02.items()}print(dic03)#[(102, '无忌'), (101, '张三丰'), (102, '赵敏')],即值重复时,用列表推导式

list03 = [(value,key) for key, value indic02.items()]print(list03)

(4)练习4:在控制台中录入5个学生信息(姓名/年龄/性别)

#4. 在控制台中录入5个学生信息(姓名/年龄/性别)#数据结构:列表中嵌套字典#[#{#"name":xx,#"age":xx,#"sex":xx,#},#{#"name":xx,#"age":xx,#"sex":xx,#}#.......#]

list_student_info=[]for i in range(2):#每次循环创建一个新字典表示一个新学生

dict_student ={}

dict_student["name"] = input("请输入姓名:")

dict_student["age"] = int(input("请输入年龄:"))

dict_student["sex"] = input("请输入性别:")#向学生列表追加学生信息

list_student_info.append(dict_student)#获取所有学生信息

for dict_stu inlist_student_info:for key,value indict_stu.items():print("%s -- %s"%(key,value))

(5)练习5:猜拳,规则:系统随机出拳,在控制台中循环猜测.

"""猜拳

规则:系统随机出拳,在控制台中循环猜测.

提示:(1)将胜利的策略存入容器

(

("石头","剪刀"),

("剪刀","布"),

("布","石头")

)

(2) 将用户猜的拳与系统出拳形成一个元组"""

importrandom#胜利策略

wins =(

("石头", "剪刀"),

("剪刀", "布"),

("布", "石头")

)#将用户猜的拳与系统出拳形成一个元组

user_input_index = int(input("请输入整数(0表示石头,1表示剪刀,2表示布):"))

items= ("石头","剪刀","布")

user_input_item=items[user_input_index]

sys_input_index= random.randint(0,2)

sys_input_item=items[sys_input_index]#逻辑处理

if user_input_item ==sys_input_item:print("平局")elif (user_input_item,sys_input_item) inwins:print("赢啦")else:print("输啦")

python元祖组成字典_Python基础之元组和字典相关推荐

  1. python元祖推导式_python推导式深入讲解

    python推导式是非常简洁高效的数据整合手段,功能强大且运行效率极高.本文将带你深入了解并掌握推导式,并将告诉你什么时候该用推导式什么时候不该用推导式. 一.推导式语法 变量名 = [ 表达式 fo ...

  2. python处理列表中字典_Python 列表、元组、字典及集合操作详解

    一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...

  3. python参数顺序 元组 字典_python学习之元组列表字典操作

    1.列表操作 1.1 作用:按位置存放多个值 1.2 定义 l=[1,1.2,'a'] # l=list([1,1.2,'a']) print(type(l)) 1.3 类型转换: 但凡能够被for循 ...

  4. python写列表和字典_python基础之列表跟字典

    1 #语法 2 dic= {"name":"alex","age":33,"job":"IT"}#结 ...

  5. python列表元组集合字典_Python列表、元组、字典、集合的方法

    一.列表 1.count() 定义:统计指定元素在列表中出现的次数并返回这个数.若指定的元素不存在则返回:0. 格式:[列表].count("指定元素") 例:统计指定元素的个数 ...

  6. python判断字符串在元祖_Python基础(2)——字典、元祖、字符串方法、非空即真、文件...

    目录: 一.字典 二.元祖 三.字符串方法.切片 四.非空即真,非0即真 五.文件 正文 一.字典 字典 d = { 'username':'xiaohei', 'id':1, 'grand':'天马 ...

  7. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  8. python元祖组成字典_Python之旅第四天(列表、元祖、字典和习题)

    第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一 ...

  9. python元祖封包_Python基础——解包与封包

    1.python封包 将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包 a = 1,2,3 print(a,type(a)) 返回 (1, 2, 3) 当函数返回多个 ...

最新文章

  1. 给力!斩获 GitHub 14000 Star,两周创办开源公司获数百万美元融资
  2. UML精粹--标准对象建模语言简明教程
  3. LDAP 中 CN, OU, DC 的含义
  4. PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...
  5. torch.max()函数==》返回该维度的最大值以及该维度最大值对应的索引
  6. C++ 泛型编程的基础--模板初识及应用
  7. Lumen开发:lumen源码解读之初始化(5)——注册(register)与启动(boot)
  8. 第一周练习代码以及备注
  9. Latex 的基本语法
  10. 各个版本的cmake下载
  11. android 系统app切换,安卓应用转换器(安装应用转为系统应用)app
  12. 几何布朗运动模拟 MATLAB实现
  13. 经典胶片图像效果lr预设
  14. 中小企业的采购现状,如何打破发展艰难的局面?
  15. 基于单片机的超市储物柜设计_基于单片机的自动存储柜的设计
  16. IntelliJ IDEA查看类层次结构图
  17. MATLAB画三维动态魔方/旋转魔方/旋转立方体
  18. 【C++】一个简单的模拟实现鼠标脚本精灵
  19. Linux的for循环和if判断
  20. Linux文件系统(一)文件系统基本概念

热门文章

  1. Citrix XenDesktop 虚拟桌面 每用户/设备 许可手动释放
  2. Marquee无间隙滚动(二)
  3. 把MSDE 2000 打包的自己的安装程序说明
  4. 创建型设计模式(1)—— 单例模式(Singleton Pattern)
  5. C/C++ volatile
  6. 利用swoole coroutine协程实现redis异步操作
  7. bzoj 2141 : 排队 (cdq分治+bit)
  8. C#实现实时监控文件目录下的变化
  9. codevs 1145 Hanoi双塔问题 2007年NOIP全国联赛普及组
  10. SuSE配置zypper(功能相当于RHEL中的yum)