一、元组

1.定义:t = ()  print(t,type(t))

1.1# 参数为for可以循环的对象(可迭代对象):

1 t2 = tuple("123")
2 print(t2, type(t2))
3 t3 = tuple([1, 2, 3])
4 print(t3, type(t3))
5 t4 = tuple((7, 8, 9))
6 print(t4, type(t4))

案例

思考:如何利用元组定义一个只有一个值的元组

1 print(('Egon,'))
2 print(tuple(['Egon']))

View Code

常用的操作:

1.2元组的索引取值和有序存储:

1 t = (1,5,8,9,6,6,3,1)
2 print(t[5])  # 6
3 print(t[-7]) # 5
4 print(t[3]) # 9 

代码如下

1.3元组的切片、长度和内置方法

 1 # 切片
 2 t = (1,4,7,8,6,3)
 3 res = t[0:3]
 4 print(res) #[1,4,7]
 5
 6 #长度
 7 print(len(t)) # 6
 8
 9 #内置方法
10 print(t.count(3)) #1

代码如下

1.4.元组的案列:#提前拥有一个老师列表,打算开除,如果是校长的亲友团,免开。

 1 teas = ['Egon','Alex']
 2
 3 friends = input('亲友团[0,1]:')
 4
 5 if friends == '1':
 6     teas = tuple(tesa)
 7 if not isinstance (teas , tuple): # 判断老师是不是亲友团,不是就删除
 8     teas.clear()
 9 for t in teas:
10     print('在职老师:%s' %t)

代码如下

二、字典

1.字典的定义和声明: ***在Python中,字典是仅存的mapping类型***

dict里面的key:他是可以为所有的不可变的类型。如:str tuple int float bool None,停航情况下采用字符串。

dict里面的value:可以为所有的数据类型的。

注意:在字典中,key是具有唯一性的,(新值会覆盖旧值);而value可以进行重复定义的。例如:

1 dic = {1: None, None: None, 3.14: None,
2           True: None, 'abc': None, (1,): None,
3            None: 12345
4          }
5 print(dic)

案例

定义字典的三种方式:

 1 # 1
 2 d1 = {'name': 'Owen', 'age': 18}
 3 print(d1)
 4
 5 # 2
 6 d2 = dict({'name': 'Owen', 'age': 18})
 7 print(d2)
 8 # 3
 9
10 d3 = dict(name='Egon', age=58)
11 print(d3)

定义的三种方式

总结:字典是无序的存储方式,无索引和切片的操作,通过key进行取值。

2.字典的增删改查操作

 1 # 定义一个空字典
 2 dic = {}
 3
 4 # 增:key不存在
 5 dic['name'] = 'Mac'
 6 print(dic)
 7
 8 # 改:key已存在
 9 dic['name'] = 'Big Mac'
10 print(dic)
11
12 # 查:
13 print(dic['name'])
14
15 # 删:
16 del dic['name']
17 print(dic)

代码如下

3.Get取值

1 dic = {'a': 10, 'b': 20}
2 # print(dic['c'])  # KeyError
3 res = dic.get('c')  # 拥有默认值,None,可以避免错误
4 print(res)
5 res = dic.get('d', 'key不存在')  # 可以自定义默认值
6 print(res)

代码如下

4.如何定义一个空字典

1 # 第一个参数:keys:list|tuple|str,第二个参数:统一的默认value
2 d10 = {}.fromkeys(['a', 'b', 'c'], '')
3 print(d10)  # {'a': '', 'b': '', 'c': ''}

代码如下

5.字典的案例:# 添加老师,在原teas基础上添加老师,如果没有,新建一个空teas。

 1 # 方法一
 2  if 'teas' not in d11:  # 成员运算
 3      d11['teas'] = []
 4  d11['teas'].append('Egon')
 5  d11['teas'].append('LiuXX')
 6  print(d11)
 7
 8
 9 #方法二
10 # 原d11中,如果有teas这个key,setdefault相当于什么都没干
11 # 如果没有,就将第二个参数(默认值)传给teas存放到d11中
12 d11.setdefault('teas', [])
13 d11['teas'].append('Egon')
14 d11['teas'].append('LiuXX')
15 print(d11)

代码如下

6.字典的循环与案例:# 不区分大小写,计算每一个名字出现的次数,记录在字典中。

 1 ls = ['Owen', 'owen', 'Egon', 'LiuXX', 'Liuxx', 'egon', 'egon']
 2 # {'owen': 2, 'egon': 3 ...}
 3 name_dic = {}
 4 for name in ls:
 5     # 名字全小写,不用区分大小写
 6     name = name.lower()
 7     # 名字是否在字典中存在:存在 - 次数+1 | 不存在 - 添加并设置初值1
 8     if name not in name_dic:
 9         # 不存在
10         name_dic[name] = 1
11     else:
12         # 存在
13         name_dic[name] += 1
14 print(name_dic)

案例方法一

1 ls = ['Owen', 'owen', 'Egon', 'LiuXX', 'Liuxx', 'egon', 'egon']
2 name_dic = {}
3 for name in ls:
4     name = name.lower()
5     # name已存在,不管,不存在,初始化指定key:name值为1
6     name_dic.setdefault(name, 0)
7     name_dic[name] += 1
8 print(name_dic)

案例方法二

三、集合

什么是set?它具备哪些特点?

i) 单列数据集合:str,list,tuple,set 双列:dict

ii) 无序存储:无key无index,无法取值

iii) 可变数据类型,内部可以存放任意类型数据,但数据具有唯一性 *****

1.{}代表空字典,用set()来创建空集合。

1 s1 = set()
2 print(s1, type(s1))
3 s2 = set('abc')
4 print(s2, type(s2))

代码如下

2.内置方法与集合之间的运算

 1 p_set = {'a', 'b', 'c', 'egon'}
 2 l_set = {'x', 'y', 'z', 'egon'}
 3 # print(p_set)
 4 # print(l_set)
 5
 6 # 交集 &
 7 res = p_set & l_set
 8 print(res)
 9 res = p_set.intersection(l_set)
10 print(res)  # {'egon'}
11
12 # 并集
13 res = p_set | l_set
14 print(res)
15 res = p_set.union(l_set)
16 print(res)  # {'z', 'c', 'y', 'x', 'b', 'a', 'egon'}
17
18 # 差集
19 res = p_set - l_set
20 print(res)  # {'a', 'b', 'c'}
21 res = l_set.difference(p_set)
22 print(res)  # {'x', 'z', 'y'}
23
24 # 对称差集
25 res = p_set ^ l_set
26 print(res)
27 res = p_set.symmetric_difference(l_set)
28 print(res)  # {'y', 'a', 'b', 'x', 'z', 'c'}
29
30 print(p_set)
31 print(l_set)
32 # p_set.difference_update(l_set)  # 将运算结果赋值给调用者
33 p_set = p_set - l_set
34 print(p_set)  # {'c', 'a', 'b'}
35 print(l_set)  # {'egon', 'z', 'y', 'x'}
36
37
38 # 添加删除操作
39 s = set()
40 s.add('abc')
41 s.add('xyz')
42 print(s)
43 res = s.pop()  # 随机删除一个ele元素
44 print(res)
45 if 'xyz' in s:
46     s.remove('xyz')  # 有ele删除,无ele抛异常

代码如下

3.案例:#  1.多少人参加了选课: ['owen', 'egon', 'liuxx'] 2.都选了哪些课程: ['python', 'linux', 'java'] 3.利用逻辑代码去重

 1 names = []
 2 for name, _ in class_map:
 3     # 判断列表中是否已存在,不存在才添加
 4     if name not in names:
 5         names.append(name)
 6 print(names)
 7
 8 # 利用set去重
 9 classes = set()
10 for _, cless in class_map:
11     classes.add(cless)
12 classes = list(classes)
13 print(classes)

代码如下

4.了解:

 1 sup_set = {1, 2, 3, 4, 5}
 2 sub_set = {1, 2, 3}
 3 temp_set = {3, 2, 1}
 4 flag_set = {7, 8, 9}
 5
 6 print(sup_set > sub_set)
 7 print(sup_set < sub_set)
 8 print(temp_set == sub_set)
 9
10 # 两个set是否没有交集
11 res = flag_set.isdisjoint(temp_set)
12 print(res)
13 res = temp_set.isdisjoint(sup_set)
14 print(res)

代码如下

转载于:https://www.cnblogs.com/wanglei957/p/10595037.html

解读基本数据类型和内置方法(2)相关推荐

  1. 数据类型的内置方法:元组

    目录 数据类型的内置方法:元组 作用 定义 优先掌握的内置方法 数据类型的内置方法:元组 作用 能够存储多个元素,元素与元素之间逗号隔开 ,元素可以是任意类型,元组不能被修改. 存一个只or多个值:多 ...

  2. day10 基本数据类型及内置方法

    基本数据类型及内置方法 一.引子 二.数字类型int与float 定义 类型转换 使用 三.字符串 定义 类型转换 使用 优先掌握的操作 需要掌握的操作 1.strip, lstrip, rstrip ...

  3. python的数据类型包括内置的_python基础(三)-数据类型与内置方法1

    今日内容 数据类型 (1)整型(INT) '''int只能转纯数字的字符串,小数点都不行''' 存一个值且有序:但凡有索引的数据都是有序的. 进制转换 10进制转二进制:print(bin(12)) ...

  4. 基本数据类型和内置方法 08

    文章目录 1. 整型 int 2.浮点型float 3.字符串 str 3.1定义和类型转换 3.2 索引 3.3切片 3.4长度 3.5 成员运算in和not in 3.6 移除 strip() 3 ...

  5. 基石为勤能补拙的迷宫之旅——第五天(Python基本数据类型及内置方法)

    一.数据可变不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 l = ['a', 'b'] print(id(l)) l[0] = 'A' print(l) print(id ...

  6. 内置python数据类型_python基础之数据类型及内置方法

    一.数字类型 1.整型int:用来记录年龄.等级.号码等 int()可以接收数字和纯数字组成的字符串参数,不能接收浮点数的字符串. 当参数为浮点数时,函数会返回参数的整数部分.当参数是整数字符串时,函 ...

  7. day07 数据类型的内置方法(列表的内置方法)

    列表 作用 存多个元素,可以是不同数据类型的 定义方式 av_star = ['canglaoshi','longzeluola','boduoyejieyi','shangyuanjieyi'] 方 ...

  8. 数字、字符串、列表类型及常用内置方法

    目录 可变不可变类型 基本数据类型及内置方法 数字类型 整型 浮点型 数字类型总结 字符串类型 字符串类型的常用操作+内置方法 字符串类型总结 列表类型 列表类型的常用操作+内置方法 列表类型总结 可 ...

  9. 基础知识:数字、字符串、列表 的类型及内置方法

    阅读目录 今日学习内容: 基本数据类型及内置方法 1.数字类型 2.字符串类型 3.列表类型 今天学习的内容比较细比较杂,需要一点一点嚼烂慢慢消化,别急,加油!ヾ(◍°∇°◍)ノ゙ ========= ...

最新文章

  1. Road-SLAM:基于道路标线车道级精度SLAM
  2. ICML2020 | 基于贝叶斯元学习在关系图上进行小样本关系抽取
  3. [教程]MongoDB 从入门到进阶 (概要 以及 高级索引篇 TimeToLive GeoNear)
  4. 计算机组成原理_在线作业1,20秋《计算机组成原理》在线作业1
  5. python如何取消缩进_python如何处理缩进
  6. html5 字符相等,js里返回字符ok与字符ok比较不相等的问题
  7. [转载] Python3网络爬虫
  8. mysql php教程,MySQL PHP语法
  9. python打开文件中文名_windows下Python打开包含中文路径名文件
  10. fusion按照多个centos,设置静态ip
  11. Spring Boot学习总结(30)—— Spring Native 初体验
  12. 从零开始使用CodeArt实践最佳领域驱动开发(三)
  13. CSS Day04 css核心基础
  14. oracle12c加密ted,使用Oracle Wrap工具加密你的代码
  15. State Street以26亿美元收购资产管理IT供应商Charles River
  16. Java计算机毕业设计电脑小白网站源码+系统+数据库+lw文档
  17. Python3 人脸识别 源码
  18. WINDOWS自带md5校验工具
  19. mysql的可视化工具_Mysql可视化工具Navicat的基本使用
  20. 国内外知名的21个Logo设计工具

热门文章

  1. PHP开发如何实现多线程?
  2. WCF之元数据交换 (Metadata Exchange)
  3. mybatis mapper绑定
  4. 使用Wamp搭建Php本地开发环境,HBuilder调试
  5. linux-xargs
  6. viewholder
  7. Java学习笔记:内部类/匿名内部类的全面介绍
  8. 字符设备驱动笔记——中断方式按键驱动之linux异常处理结构(四)
  9. 清空SQL Server数据库日志的SQL语句
  10. POS机系统 秘钥体系