python基础:数据类型二
本文目录:
一、元组类型
什么是元祖
元组: 元组就是一个不可变的列表
用途: 用于存放多个值,当存放的多个值只有读的需求没有改的需求时用元组最合适
t=(1,3.1,'aaa',(1,2,3),['a','b']) # t=tuple(...)
# print(type(t))
# res=tuple('hello')
# res=tuple({'x':1,'y':2})
# print(res)
常用操作+内置的方法
1、按索引取值(正向取+反向取):只能取
# t=('a','b',1)
# t[0]=111
2、切片(顾头不顾尾,步长)
# t=('h','e','l','l','o')
# res=t[1:3]
# print(res)
# print(t)
3、长度
# t=('h','e','l','l','o')
# print(len(t))
4、成员运算in和not in
# t=('h','e','l','l','o')
# print('h' in t)
5、循环
# t=('h','e','l','l','o')
# for item in t:
# print(item)
总结
# 存多个值
t=(1,'a',['x','y','z'])
# print(id(t[2]))
t[2][0]='X'
# print(t)
# print(id(t))
# print(id(list1[0]))
# print(id(list1[1]))
# print(id(list1[2]))
#
# print('='*50)
# list1[1]='B'
# print(id(list1[0]))
# print(id(list1[1]))
# print(id(list1[2]))
t=('a','b','a')
# print(t.index('a'))
# t.index('xxx')
print(t.count('a'))
二、字典类型
什么是字典
类似于java编程语言中的Map
用途: 用来存方多个(不同种类的)值
定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int\float\str\tuple)
d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict(....)
# print(d[(1, 2, 3)])
# d1={[1,2,3]:'aaaaa'} # d=dict([('k1',1),('k2',2),('k3',3)])
# print(d) # l=[('k1',1),('k2',2),('k3',3)]
# d={}
# for t in l: #t=('k1',1)
# k,v=t
# # print(k,v)
# d[k]=v
# print(d)
# #
# d=dict(l)
# print(d) # d=dict(x=1,y=2,z=3)
# print(d)
常用操作+内置的方法
1、按key存取值:可存可取
d={'x':1}
print(d['x'])
print(id(d))
d['x']=1111
print(d)
print(id(d))
d['y']=2222
print(d)
2、长度len
d={'x':1,'y':2,'z':3}
print(len(d))
3、成员运算in和not in
d={'x':1,'y':2,'z':3}
print(1 in d)
print('x' in d)
# 一般判断这个元素是否存在于字典的key中
4、删除
d={'x':1,'y':2,'z':3}
# del d['y']
# print(d) # res=d.pop('y')
# print(d)
# print(res) # res=d.popitem() #取出字典最后一个key,val并返回个元祖
# print(res)
5、键keys(),值values(),键值对items()
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
print(d.keys())
# print(list(d.keys())) print(d.values())
# print(list(d.values())) print(d.items())
# print(list(d.items()))
6、循环
# for k in d.keys():
# print(k)
# for k in d:
# print(k) # for v in d.values():
# print(v) for k,v in d.items(): #k,v=('name', 'egon')
print(k,v)
总结
# ======================================该类型总结====================================
# r存多个值 # 无序 # 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash # 需要掌握的操作
# get方法
# d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
# v=d.get('namexxxxxxx')
# print(v) # v1=d['namexxxxxxxxxxx']
# print(v1) #update方法
# d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
# d.update({'x':1,'name':"EGON"})
# print(d) # fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
# keys=['name','age','sex']
# # d={}
# # for k in keys:
# # d[k]=None
#
# d={}.fromkeys(keys,None)
# print(d) # setdefault
d={"x":1,"y":2} # 按照默认的操作形式
# d['x']=1111 # key存在则修改
# d['z']=1111 #key不存在则新增 # 按照setdefault的形式
# d={"x":1,"y":2}
# res=d.setdefault('x',11111) # 在key存在的情况下不修改值,会返回原值
# print(d)
# print(res) # res=d.setdefault('z',11111) # 在key不存在的情况下会新增值,会返回新增的值
# print(d)
# print(res) # 练习
s='hello alex alex say hello sb sb' # d={'hello':2,'alex':2,'say':1,'sb':2} d={}
words=s.split()
# print(words) #words=['hello', 'alex', 'alex', 'say', 'hello', 'sb', 'sb']
for word in words: #word= 'alex'
# d[word]=words.count(word) #d['alex']=words.count('alex')
d.setdefault(word,words.count(word))
#d={'hello':2,'alex':2} # print(d) #补充元组符号
# t=(1,)
# print(t,type(t)) name=input('>>: ').strip()
print(('my name is %s' %name).center(50,'*'))
三、集合
什么是集合
pythons=['egon','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯']
linuxs=['欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb']
l=[] for stu in pythons:
if stu in linuxs:
l.append(stu)
print(l)
上面是找出即在python学员名单又在linux学员名单中的学员,有没有更好更简单的方法呢?
有的,就是集合
什么是集合?
在{}内用逗号分隔开多个值,集合的特点:
1. 每个值必须是不可变类型
2. 集合无序
3. 集合内元素不能重复
为何要用集合
1. 用于做关系运算
2. 去重
3. 如何用集合
# s={1,1.3,'aa',[1,2,]}
# s={1,1.3,'aa'}
# print(s)
# s={1,1,1,1,1,1,1,2} #s=set(....)
# print(type(s))
# print(s)
# d={'x':1,'x':2,'x':3}
# print(d)
# res=set('hello')
# res=set([1,2,['a','b']])
# print(res)
集合的第一大用途: 关系运算
pythons={'egon','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯'}
linuxs={'欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb'}
# 1 求同时报名两门课程的学生姓名:交集
# print(pythons & linuxs)
# print(pythons.intersection(linuxs))
# pythons=pythons & linuxs
# print(pythons) #{'李铜蛋', '艾里克斯'}
# pythons.intersection_update(linuxs) #pythons=pythons.intersection(linuxs)
# print(pythons) #{'艾里克斯', '李铜蛋'}
# 2 求报名老男孩学校课程的所有学生姓名:并集
# print(pythons | linuxs)
# print(pythons.union(linuxs))
# 3 求只报名python课程的学生姓名: 差集
# print(pythons - linuxs)
# print(pythons.difference(linuxs))
# print(linuxs - pythons) #求只报名linux课程的学生姓名
# print(linuxs.difference(pythons))
# 4 求没有同时报名两门课程的学生姓名: 对称差集
# print((pythons - linuxs) | (linuxs - pythons))
# print(pythons ^ linuxs)
# print(pythons.symmetric_difference(linuxs))
# 5 父子集:指的是一种包含与被包含的关系
# s1={1,2,3}
# s2={1,2}
# print(s1 >= s2)
# print(s1.issuperset(s2))
# print(s2.issubset(s1)) # 情况一:
# print(s1 > s2) #>号代表s1是包含s2的,称之为s1为s2的父集
# print(s2 < s1)
# 情况二:
# s1={1,2,3}
# s2={1,2,3}
# print(s1 == s2) #s1如果等于s2,也可以称为s1是s2的父集合
# 综上:
# s1 >= s2 就可以称为s1是s2的父集 # s3={1,2,3}
# s4={3,2,1}
# print(s3 == s4)
# s5={1,2,3}
# s6={1,2,3}
# print(s5 >= s6)
# print(s6 >= s5)
集合的第二大用途:去重
# 1. 会打乱原值的顺序
# 2. 只能针对不可变的值去重
# new_l=list(set(stus))
# print(new_l)
#
# old_l=[1,[1,2],[1,2]]
# set(old_l)
{'name':'egon','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'egon','age':20,'sex':'female'},
{'name':'egon','age':18,'sex':'male'},
{'name':'egon','age':18,'sex':'male'},
]
# new_l=[]
# for dic in l:
# if dic not in new_l:
# new_l.append(dic)
# print(new_l)
s1={1,2,3}
# s1.update({3,4,5})
# print(s1)
# print(s1.pop())
# print(s1)
# print(s1)
# print(id(s1))
# s1.add(4)
# print(s1)
# print(id(s1))
# s1.discard(4)
# s1.remove(4)
# print(s1)
# s2={4,5}
# print(s1.isdisjoint(s2))
# 存多个值
# 无序
# set可变
python基础:数据类型二的更多相关文章
- python基础----数据类型二
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- Day 3 Python 基础数据类型二
1. INT 型 #1. 数字int #bit_length() 当十进制用二进制表示时,最少使用的位数. v =11 data = v.bit_length() print(data) 2. 布尔值 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- 1--Python 入门--Python基础数据类型
一.Python基础语法 初次使用Python,首先要明确三点: Python的标识符(例如变量名.函数名等),可用字母.数字和下划线构成,不能以数字开头,且区分大小写. Python对于缩进敏感.在 ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- Python基础数据类型题
Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...
- Python基础数据类型之字符串
Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
随机推荐
- jQuery.data() 即($.data())的实现方式
jQuery.data() 的作用是为普通对象或 DOM Element 附加(及获取)数据. 下面将分三个部分分析其实现方式: 1. 用name和value为对象附加数据:即传入三个 ...
- selenium3 web自动化测试框架 二:页面基础操作、元素定位方法封装、页面操作方法封装
学习目的: 掌握自动化框架中需要的一些基础web操作 正式步骤: 使用title_contains检查页面是否正确 # -*- coding:utf-8 -*- import time from se ...
- 如何解决滚动条scrollbar出现造成的页面宽度被挤压的问题
参考如下: https://www.ucloud.cn/yun/114228.html
- javaweb期末项目-stage2-项目创建、配置、接口设计和功能实现(含核心源码)
项目的创建.配置.接口设计和功能实现(含核心代码).rar--下载 说明:解压密码为袁老师的全名拼音(全小写) 相关链接: 项目结构:https://www.cnblogs.com/formyfish ...
- kibana配置文件说明书
#端口号 server.port: 5601 #kibana服务安装的地址 server.host: "192.168.122.21" #当使用代理时,这里可能对应的是加工后的ki ...
- d3学习之路
d3学习历程: 轻量化编译器:HbuiderXHbuiderX使用教程 理解HTMl js CSS 三者关系 学习html js css :1)w3school 2)moo ...
- 【ARM-Linux开发】打包解包命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- 【VS开发】千兆以太网的传输速度
千兆以太网主流标准 千兆以太网络技术早在上世纪90年代末就已成熟,其中,1995年国际标准化组织TIA/EIA颁布了1000Base-TX标准,该标准的目的是把双绞线用于千兆以太网中,其目的是在6类非 ...
- 实现多个JSP页面共用一个菜单
1.首先将菜单栏代码独立为一个jsp页面 例如 <%@ page language="java" contentType="text/html; charset=U ...
- Spring Boot 创建动态定时任务
1,日期格式转换 //定时任务格式转换public static String convertCronTime(Date jobDate){ //https://blog.csdn.net/qq_39 ...