day03:

1.列表:list

特点:有序的(有索引、定义和显示顺序是一致的)、可变的(既可以改变元素内容也可以自动扩容)、可重复的、

可以存储任何的数据类型数据

定义个列表如下:
lt = ['宋江','李逵','鲁智深','武松','西门庆','潘金莲','时迁',['刘备','关羽','张飞']]
1.1.如何访问列表中的元素?

1).获取元素?

列表名配合下标获取 --> 例如:lt[0],lt[-1]...

2).设置元素?

列表名配合下标 = ... --> 例如:lt[4] = "武大郎"

1.2.列表的+和*操作:

对于+操作而言,将两个列表对象的内容都组合起来以一个新的列表返回

对于*操作而言,将列表中的元素重复出现n次,以新列表返回

思考:以下带有有没有问题?

会报错,原因是"嬴政"是一个字符串数据,字符串只能和字符串之间做拼接运算

lt1 = lt + "嬴政"

1.3.和列表有关的一些函数:

append(obj):追加obj元素到列表的末尾

clear():清空列表。元素不见了,列表对象还在

1.4.del关键字配合列表使用

del lt[0],lt[1] 清空列表中的某些元素,列表对象还在

del lt 回收列表对象,列表对象不存在了

1.5.列表的切片:

格式和作用参照str,它们一样的...

代码如下:
lt5 = ['黑猫警长','猫和老鼠','熊出没','灌篮高手','海尔兄弟','柯南']

lt6 = lt5[1:4]

print(lt6)

print(lt5)

print(lt5[2:-2])

print(lt5[-1:2:-1])

print(lt5[::])

print(lt5[::-1])

# lt5[1:-2] = []

lt5[:] = []

print(lt5)
1.6.列表的定义格式:

格式1:列表名 = [值1,值2,值3...]

格式2:列表名 = [变量1,变量2,变量3,...] = [值1,值2,值3...]

格式3:列表名 = [值1]

格式4:列表名 = []

2.元祖:tuple

特点:有序的(有索引、定义和显示顺序是一致的)、不可变的(和str一样理解)、可重复的、

可以存储任何的数据类型数据

2.1.如何访问元祖元素?

1).获取元素?

2).设置元素?

非法操作,和str一致

2.2.原则的+和*操作:

对于+操作而言,将两个元祖对象的内容都组合起来以一个新的元祖返回

对于*操作而言,将元祖中的元素重复出现n次,以新元祖返回

思考:元祖有没有类似列表的append或者clear函数?

没有的,因为append和clear这类的函数改变的是容器对象的内部元素内容,这和不可变冲突;

2.3.元祖的切片操作:

和list&str一致,参看它们即可

代码如下:
print(tp[:6:2])

print(tp[:])
2.4.元祖的定义格式:

格式1:元祖名 = (值1,值2,值3...)

格式2:元祖名 = (变量1,变量2,变量3,...) = (值1,值2,值3...)

格式3:元祖名 = (值1,)

格式4:元祖名 = ()

2.5.del关键字配合列元祖使用

注意:只能回收整个元祖对象,不能回收元素

3.字典:dict

特点:无序性(没有索引)、可变的数据类型(值可变、键不可变)

字典的结构:键值对组合 --> key-value对

键(key):唯一性(不可重复)、不可变的数据类型(list等不能作为键)

值(value):没有任何要求,可以是任何类型数据,甚至可以重复

3.1.如何访问字典元素?

1).获取值?

字典名配合键名可以得到对应的值

2).设置值?

字典名配合键名 = ...

【注意事项1】

1).在定义字典的时候如果出现了重复的键,保留键名的同时,将后者的值覆盖前者的值

2).在添加新的键值对时,如果原字典中没有此键,那么就直接加入了

思考:字典有+和*操作吗?

不能支持以上的操作,是非法的,会报错...

代码如下:
dic2 = {"name":"韩梅梅",'age':23,'height':168.0,'name':'王五'}

dic3 = {"sex":'男',"address":'北京'}

print(dic2 + dic3)

print(dic3 * 3)
3.2.字典的函数:

clear():

【注意事项2】:

键:必须满足不可变的数据类型,例如:int、float、bool、str、tuple、None都可以充当键

值:没有要求

思考:可以通过值找到键吗?

不可以,因为值可能重复,不能精确的找到唯一的键

对于通过键找值的情况可以有以下两种方式来实现:

方式一:如果键不存在,会报错;出现KeyError的异常

方式二:如果键不存在,不会报错,会返回给程序一个None值,此方式比较安全/友好(更建议使用)

print(dic2['name1']) #出现异常

print(dic2.get('name1')) #不会出现异常,返回一个None值给程序

3.3.del关键字配合字典使用

既可以回收字典对象,也可以回收任何一个键值对数据

4.集合:set

特点:无序性(没有索引,每一次的显示不一致)、不可重复性(唯一的)、可以存放任何类型的数据、可变的

4.1.集合的一些常用操作如下: 以下的操作都是在两个集合对象中实现的

符号:

&:取交集

|:取并集

-:取差集

^:先去并集再舍弃交集部分

4.2.集合的函数:

clear():清空集合,保留外壳

4.3.del关键字配合集合使用

既可以回收集合对象,也可以回收集合中的元素

python第三课——数据类型2的更多相关文章

  1. Python学习,第三课 - 数据类型

    前言. 本次针对Python中的数据类型,做详细的总结 1.数字 2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E- ...

  2. python第三课--函数

    函数的作用 编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题.例如3次求阶乘: m = int(input( ...

  3. 小哈学Python第三课-字符集编码

    table.hovertable { font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; border- ...

  4. python第三课

    本节内容 1.列表 2.购物车设计思路 3.字典 1.列表 不可变类型:整型.字符串.元组tuple 可变类型:列表list.字典dict 2.购物车 3.字典

  5. Python第三周 数据类型:集合set、文件的读写、追加操作。

    集合 知识点:集合是无序的 格式:{1,2,3,"str_test"} set_1 = set(list1)#将列表转换为集合 集合关系测试: 集合的逻辑判断.取交集.并集.差集. ...

  6. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  7. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  8. python第三十一课--递归(2.遍历某个路径下面的所有内容)

    需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...

  9. Python 30分钟入门——数据类型 and 控制结构

    Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Pytho ...

随机推荐

  1. git分支branch合并到主分支master

    如何使用git将分支branch合并到主干master上 对于一人独立使用git进行系统开发时,branch分支相当于版本(Version),如果每次都将新的分支branch提交到GitHub上,则会 ...

  2. Mysql开启远程服务

    开启远程服务: 登录mysql: //赋予root用户所有权限,远程登录密码是123456 grant all privileges on *.* to '; flush privileges; 设置 ...

  3. MyBatis中的条件查询(动态sql)

    本文将介绍使用MyBatis框架,编写DAO层接口类和接口类对应的sql映射文件,使用动态sql查询满足条件的用户集合. 首先,需要创建一个实体类User,供封装数据使用: package com.x ...

  4. Oracle扩容日志文件

    0.检查当前数据库日志切换频率 select * from v$log_history where first_time>=to_date('2017-10-18','yyyy-mm-dd') ...

  5. ECMAScript 5和ECMAScript6的新特性以及浏览器支持情况

    ECMAScript简介: 它是一种由Ecma国际(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范,javascript在它基础上经行了自己的封装.但通常来说,术语ECMAScript和java ...

  6. Oracle数据库拼接字符串

    Oracle数据库中字符串拼接的实现 select count() from THT_HTFKJL where ht=1: 假如结果为:31.例如上面例子想要给结果拼接字符串有二种实现方法,第一种使用 ...

  7. drupal7图片样式无法生成与显示

    正常设置了图像的样式,并且为内同类型正确设置了显示的样式.但是上传图片后,却并没有在对应的文件夹下生成对应的缩略图.自然没有显示. 网上查询了一下,需要为nginx添加两个设置: location @ ...

  8. Python爬虫学习记录【内附代码、详细步骤】

    引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...

  9. Fiddler基础教程

    一.Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.com Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料. Fiddler ...

  10. 团队项目个人进展——Day04

    一.昨天工作总结 冲刺第四天,昨天继续忙着整理数据结构与算法的知识,在项目上看了看有关视频,学习了有关视图的地方和文档说明 二.遇到的问题 无 三.今日工作规划 学习并实现地图的放大与缩小