集合类型及操作

集合元素之间无序,集合元素不可更改。

创建

set("pypy123")

{'1', '3', 'p', 'y', '2'}       空集合不能用{}生成,留个字典了,  用set()

关系操作

交 & 并 |  差 -   补^  支持(&=, |=,  -=, ^=)

关系操作符 ,>=  判断子集关系或包含关系

>>> A = {'p','y',123}>>> B = set("pypy123")>>> A-B

{123}>>> B-A

{'1', '3', '2'}>>> A&B

{'y', 'p'}>>> A|B

{'1', '3', 'p', 'y', '2', 123}>>> A^B

{'1', '3', '2', 123}>>>

方法:

S.add(x)

S.discard(x)        #不报错

S.remove(x)        #没有会报错

S.clear()

S.pop()          #随机 pop一个,没有产生异常

S.copy()

Len(S)

x in S / x not in S

集合应用场景:

关系判断

数据去重:集合类型所有数据无重复

>>> listA = [1,3,2,4,2,1,1,2]>>> setTemp =set(listA)>>> listA =list(setTemp)>>>listA

[1, 2, 3, 4]

序列类型及操作

序列是一维元素的向量。

序列类型是基类类型 (元组,列表,字符串)由序列类型衍生

处理函数:

x in S / x not in S

S + t

S *n或n*S

S[i]

s[i:j]或s[i:j:k]    #切片

通用函数:

len(s)

min(s)       #需要可比

max(s)      #需要可比

方法:

s.index(x)或 s.index(x,i,j)       #从i到j第一次出现的位置

s.count(x)          #x出现总次数

元组类型

元组是序列类型的一种扩展。

不可变类型

定义

()或 tuple()

单个元组 (1,)  要加逗号,区分与基本类型

可以使用小括号或者不适用小括号

example:

def  func():

return 1,2

1,2就是一个元组

操作:

继承序列的操作

无特殊操作

列表类型

可变类型

定义

[]或list()

列表中各元素类型可以不同,无长度限制

ex:

>>> ls = ['pig','fish',999]>>>ls

['pig', 'fish', 999]>>> lt =ls>>>lt

['pig', 'fish', 999]

方括号[]和list真正创建一个列表,赋值操作仅传递引用()浅拷贝

操作:

ls[i] = x

ls[i:j:k] = lt    #用lt替换ls切片后所对应元素子列表

del ls[i]

del ls[i:j:k]

ls += lt

ls *= n      #使元素重复n遍

方法:

ls.append(x)    #后面增加一个元素

ls.clear()

ls.copy()      #创建一个新的,深拷贝

ls.insert(i, x)     #在ls第i个元素前增加元素x

ls.pop(i)      #取出并删除第i位置元素

ls.remove(x)     #将ls中出现的第一个元素x删除

ls.reverse()      #反转

extend()和append()的区别:

append(x)只向列表增加一个元素,如果x为列表,则列表x作为一个元素,不会拆分

extend(seq)参数seq 是元素序列,会将元素拆分依次加到后面

>>> ls = list(range(1,5))>>>ls

[1, 2, 3, 4]>>> ls.append(1)>>>ls

[1, 2, 3, 4, 1]>>> ls.append(1,2,3)

Traceback (most recent call last):

File"", line 1, in TypeError: append() takes exactly one argument (3given)>>> ls.append([1,2,3])>>>ls

[1, 2, 3, 4, 1, [1, 2, 3]]>>> ls.append((1,2,3))>>>ls

[1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3)]>>> ls.append({a:1,b:2})

Traceback (most recent call last):

File"", line 1, in NameError: name'a' is notdefined>>> ls.append({'a':1,'b':2})>>>ls

[1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}]>>> ls.extend(range(5,8))>>>ls

[1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7]>>> ls.extend((1,2,3))>>>ls

[1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7, 1, 2, 3]>>> ls.extend({'c':3,'d':4})>>>ls

[1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7, 1, 2, 3, 'c', 'd']

序列应用场景

数据表示

元组用于元素不改变的场景,多用于固定搭配,数据保护 (const)

字典类型

键值对 索引->数据

字典是键值对的集合,键值对之间无序

定义

{}或dict() 键值间用:分割

操作和方法:

del d[k]

k in d

d.keys()         #返回所有键    返回类型可以便利,但不能当列表操作

d.values()        #返回所有值

d.items()        #返回所有键值对信息

d.get(k,)    #键k存在,返回对应值,不存在返回值

d.pop(k,)    #键k存在,取出对应值,不存在返回值

d.popitem()       #随机取出一个键值对,以元组的形式反回

d.clear()

len(d)

应用场景

表达键值对数据,进而操作

元素遍历

for k in d:

python组合数据类型包括_第六周 python组合数据类型相关推荐

  1. 嵩天-Python语言程序设计程序题--第六周:组合数据类型

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  2. python串口发送数据_第六课python来写串口助手-串口发送数据

    https://m.toutiaocdn.com/group/6716026491689239044/?app=news_article&timestamp=1563807838&re ...

  3. 软件工程_东师站_第六周作业

    1. PSP Date Type Job Start Int(min) End Total(min) 20160407 编码 抢答器重构 19:00 30 20:50 80   站立会议 " ...

  4. python文件处理基础_第六篇:python基础之文件处理

    阅读目录 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 正趣果上果 Interesting fruit fruit 词:郭婞 曲:陈粒 编曲/混音/和声: ...

  5. python简单数据类型变量_(八)python的简单数据类型和变量

    什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...

  6. python梦幻西游4小人_梦幻西游:五开简单组合,1无底洞4溅射大唐优势明显,全程挂自动...

    一个喜欢五开的梦幻玩家,今天给大家介绍的是关于五开的奇葩组合,1无底洞4大唐,该组合简单方便,配合大唐的平砍优势可谓是挂机最佳的组合,一起来看看吧. 这里介绍的队伍等级为109级,玩家之所以选择了4大 ...

  7. 我的python学习笔记全集_记录我的Python学习笔记

    不想再像以前那样,什么都从头开始学习语法.总结语法,这样反而会过分纠结于语法,耽误了开发,毕竟语言的主要属性是工具,次要的属性是语言本身. 所以还是先熟练使用语言去进行开发,等足够熟悉了,再去研究语言 ...

  8. 杨洋python课程提高篇_全民一起玩Python 基础篇+提高篇,杨洋老师Python入门教程...

    01第零回:莫叹琐事催白发,且学Python省年华.mp4 02第一回:梧桐长成鸾凤至,环境搭好代码来.mp4 03第二回:算术符号遵循惯例,版本差异务必当心.mp4 04第三回:单条语句独占单行代码 ...

  9. c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用

    作者 | 樱雨楼 引言 指针(Pointer)是 C.C++ 以及 Java.Go 等语言的一个非常核心且重要的概念,而引用(Reference)是在指针的基础上构建出的一个同样重要的概念. 指针对于 ...

  10. python控制语句第一章_【原创】Python第一章

    Python总是从第一行代码开始逐步执行,而C是从main函数开始执行. 在Python中,一切东西都是对象. 在Python中,没有C的花括号,不能任意排版,属于同一个语句块的语句需要使用相同的对齐 ...

最新文章

  1. 人工智能机器学习区别计算机应用,AI、人工智能和机器学习有什么区别
  2. 牛顿棺材板快盖不住了:用深度神经网络解决三体问题,提速一亿倍
  3. 【mycat】简介及安装
  4. 笔记-高项案例题-2014年上-计算题
  5. 如何做相册_腾讯相册管家再创相册管理软件新纪元
  6. 深入Java集合学习系列:LinkedHashSet的实现原理
  7. 结对编程,到底是双剑合璧还是脚趾抠地?
  8. matlab输电线路模型,输电线路模型及其特性.ppt
  9. 《Nature》论文插图复刻第3期—面积图(Part2-100)
  10. 计算机英语考虑是,计算机英语中单词privilege和permission的区别
  11. xmlhttp.readyState的值及解释
  12. 魔域服务器修改和宝宝数据,宝宝属性与真实值之间的公式计算关系
  13. Mycat读写分离、主从切换、分库分表的操作记录 https://www.cnblogs.com/kevingrace/p/9365840.html
  14. syntax error, expect {, actual error, pos 1, fastjson-ve
  15. IG中最多案赞数居然是一棵蛋?!网友共同合作打破美国女星记录
  16. 在ROS中使用USB网络摄像头传输图像
  17. break和continue用法详解
  18. php开发使用predis(thinkphp框架,composer,windows环境练习)
  19. 地图数据设计(三):坐标参考系统的选择
  20. 证据理论(3)—— 计算两个证据体的距离

热门文章

  1. ASP.NET Core Logging in Elasticsearch with Kibana
  2. Fedora 16 更新源设置[zz]
  3. Tensorlayer深度强化学习之Tensorlayer安装
  4. 【学堂在线数据挖掘:理论方法笔记】第七天(4.1)
  5. 课程设计哈夫曼编/译码系统
  6. 【LeetCode】【数组】题号:*48,旋转图像
  7. Pytorch——计算机视觉工具包:torchvision
  8. 左对齐 latex_LaTex中使用XYpic绘制交换图表
  9. 这场直播,我们把 Apache 顶级项目盛会搬来了!
  10. 如何在 Flink 1.9 中使用 Hive?