python第三课——数据类型2
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的更多相关文章
- Python学习,第三课 - 数据类型
前言. 本次针对Python中的数据类型,做详细的总结 1.数字 2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E- ...
- python第三课--函数
函数的作用 编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题.例如3次求阶乘: m = int(input( ...
- 小哈学Python第三课-字符集编码
table.hovertable { font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; border- ...
- python第三课
本节内容 1.列表 2.购物车设计思路 3.字典 1.列表 不可变类型:整型.字符串.元组tuple 可变类型:列表list.字典dict 2.购物车 3.字典
- Python第三周 数据类型:集合set、文件的读写、追加操作。
集合 知识点:集合是无序的 格式:{1,2,3,"str_test"} set_1 = set(list1)#将列表转换为集合 集合关系测试: 集合的逻辑判断.取交集.并集.差集. ...
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式
Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell ...
- python第三十一课--递归(2.遍历某个路径下面的所有内容)
需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...
- Python 30分钟入门——数据类型 and 控制结构
Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Pytho ...
随机推荐
- EF6 CodeFirst代码迁移笔记
由于EF7只支持codefirst only.朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧.写的这些网上大致都有,基本没啥 新内容, 迁移 使用自动迁移 Enable- ...
- 南阳nyoj 509 因子和阶乘
因子和阶乘 时间限制:1000 ms | 内存限制:65535 KB 难度:2 http://acm.nyist.net/JudgeOnline/problem.php?pid=509 描述 给 ...
- 整理 node-sass 安装失败的原因及解决办法
npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...
- SpringCloud学习指南【更新】
一. 推荐学习博客主页[更新] Spring Cloud 系列文章(纯洁的微笑,强烈推荐系列文章) Spring Cloud系列教程 (周立大大,强烈推荐) Spring Cloud入门到实战系列教程 ...
- LOJ#6035. 「雅礼集训 2017 Day4」洗衣服
传送门 先处理出每一件衣服最早什么时候洗完,堆+贪心即可 然后同样处理出每件衣服最早什么时候烘干 然后倒序相加取最大值 # include <bits/stdc++.h> using na ...
- 好用的js-cookies工具
背景 回顾一年前的代码,关于cookies这块,增删改查完全可以封装成一个模块.在MDN上看到一款很全的分享,在此做个记录. cookies模块 /*\ |*| |*| :: cookies.js : ...
- mybatis作用、基本使用、小结
1. MyBatis 1.1. 作用 MyBatis是持久层框架,它是支持JDBC的!简化了持久层开发! 使用MyBatis时,只需要通过接口指定数据操作的抽象方法,然后配置与之关联的SQL语句,即可 ...
- [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- CSS之换行
在项目中,常常遇到一些问题,可以通过CSS来快速解决,比如受到布局影响会导致内容溢出,这个时候就可以使用CSS换行解决 自动换行: { word-wrap:break-word; } 强制不换行: { ...
- Add map surrounds using the SymbologyControl
/ Copyright 2010 ESRI// // All rights reserved under the copyright laws of the United States// and a ...