python元祖组成字典_Python基础之元组和字典
一、元组:
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基础之元组和字典相关推荐
- python元祖推导式_python推导式深入讲解
python推导式是非常简洁高效的数据整合手段,功能强大且运行效率极高.本文将带你深入了解并掌握推导式,并将告诉你什么时候该用推导式什么时候不该用推导式. 一.推导式语法 变量名 = [ 表达式 fo ...
- python处理列表中字典_Python 列表、元组、字典及集合操作详解
一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...
- python参数顺序 元组 字典_python学习之元组列表字典操作
1.列表操作 1.1 作用:按位置存放多个值 1.2 定义 l=[1,1.2,'a'] # l=list([1,1.2,'a']) print(type(l)) 1.3 类型转换: 但凡能够被for循 ...
- python写列表和字典_python基础之列表跟字典
1 #语法 2 dic= {"name":"alex","age":33,"job":"IT"}#结 ...
- python列表元组集合字典_Python列表、元组、字典、集合的方法
一.列表 1.count() 定义:统计指定元素在列表中出现的次数并返回这个数.若指定的元素不存在则返回:0. 格式:[列表].count("指定元素") 例:统计指定元素的个数 ...
- python判断字符串在元祖_Python基础(2)——字典、元祖、字符串方法、非空即真、文件...
目录: 一.字典 二.元祖 三.字符串方法.切片 四.非空即真,非0即真 五.文件 正文 一.字典 字典 d = { 'username':'xiaohei', 'id':1, 'grand':'天马 ...
- python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...
python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...
- python元祖组成字典_Python之旅第四天(列表、元祖、字典和习题)
第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一 ...
- python元祖封包_Python基础——解包与封包
1.python封包 将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包 a = 1,2,3 print(a,type(a)) 返回 (1, 2, 3) 当函数返回多个 ...
最新文章
- 给力!斩获 GitHub 14000 Star,两周创办开源公司获数百万美元融资
- UML精粹--标准对象建模语言简明教程
- LDAP 中 CN, OU, DC 的含义
- PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...
- torch.max()函数==》返回该维度的最大值以及该维度最大值对应的索引
- C++ 泛型编程的基础--模板初识及应用
- Lumen开发:lumen源码解读之初始化(5)——注册(register)与启动(boot)
- 第一周练习代码以及备注
- Latex 的基本语法
- 各个版本的cmake下载
- android 系统app切换,安卓应用转换器(安装应用转为系统应用)app
- 几何布朗运动模拟 MATLAB实现
- 经典胶片图像效果lr预设
- 中小企业的采购现状,如何打破发展艰难的局面?
- 基于单片机的超市储物柜设计_基于单片机的自动存储柜的设计
- IntelliJ IDEA查看类层次结构图
- MATLAB画三维动态魔方/旋转魔方/旋转立方体
- 【C++】一个简单的模拟实现鼠标脚本精灵
- Linux的for循环和if判断
- Linux文件系统(一)文件系统基本概念
热门文章
- Citrix XenDesktop 虚拟桌面 每用户/设备 许可手动释放
- Marquee无间隙滚动(二)
- 把MSDE 2000 打包的自己的安装程序说明
- 创建型设计模式(1)—— 单例模式(Singleton Pattern)
- C/C++ volatile
- 利用swoole coroutine协程实现redis异步操作
- bzoj 2141 : 排队 (cdq分治+bit)
- C#实现实时监控文件目录下的变化
- codevs 1145 Hanoi双塔问题 2007年NOIP全国联赛普及组
- SuSE配置zypper(功能相当于RHEL中的yum)