干货|Python基础入门 课程笔记(三)
目录
列表
元组
字典
三元表达式
一、列表
前面学习的字符串可以用来存储一串信息,那么想一想,如果现在有很多人,总不能每个人都起一个变量名把?那岂不得疯~
咱们可以使用列表。
(1)列表得格式和输出
name = ['杜子腾','史珍香','付书宝','刘币替']'杜子腾','史珍香','付书宝','刘币替']
输出列表:
print(name)print(name[0])print(name[1])print(name[2])
print(name[0])
print(name[1])
print(name[2])
运行结果:
(2)列表得循环遍历
使用 for 循环
当列表中存储得数据比较多得时候,为了更有效率的输出列表的每个数据,可以使用循环来完成,
name = ['杜子腾','史珍香','付书宝']for i in name:print(i)'史珍香','付书宝']
for i in name:
print(i)
运行结果:
使用 while 循环
当然也可以使用 while 循环,但是要设置好 while 循环的条件哟,小心不要进入死循环
name = ['杜子腾','史珍香','付书宝']length = len(name)i = 0while i<length:print(name[i])i+=1'史珍香','付书宝']
length = len(name)
i = 0
while i<length:
print(name[i])
i+=1
运行结果:
(3)列表得常见操作
列表中存放的数据是可以进行修改的,比如"增"、"删"、"改"、"查",后续咱们还会讲可变对象和不可变对象。列表就是可变对象,请看后面得课程哟
增(append, extend, insert)
append
通过 append 可以向列表中添加数据
namelist = ['杜子腾','史珍香','付书宝']namelist.append('李铁柱')print(namelist)'史珍香','付书宝']
namelist.append('李铁柱')
print(namelist)
运行结果:
extend
通过 extend 可以将另一个集合中的元素逐一添加到列表中
namelist = ['杜子腾','史珍香','付书宝']name_list = ['李铁柱','李树']namelist.extend(name_list)print(namelist)'史珍香','付书宝']
name_list = ['李铁柱','李树']
namelist.extend(name_list)
print(namelist)
运行结果:
insert
insert(index, object) 在指定位置 index 前插入元素 object
namelist = ['杜子腾','史珍香','付书宝']namelist.insert(1,'付舒宝')print(namelist)'史珍香','付书宝']
namelist.insert(1,'付舒宝')
print(namelist)
运行结果:
删(del, pop, remove)
del
根据下标进行删除
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']del movieName[0]print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
del movieName[0]
print(movieName)
运行结果:
pop
删除最后一个元素
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName.pop()print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
movieName.pop()
print(movieName)
运行结果:
remove
根据元素的值进行删除
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName.remove('骇客帝国')print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
movieName.remove('骇客帝国')
print(movieName)
运行结果:
改(通过下标)
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']movieName[0] = '三傻大闹宝莱坞'print(movieName)'骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
movieName[0] = '三傻大闹宝莱坞'
print(movieName)
运行结果:
查(in, not in)
in
如果存在那么结果为true,否则为false
#待查找的列表nameList = ['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName = input('请输入要查找的姓名:')#查找是否存在if findName in nameList:print('在字典中找到了相同的名字')else:print('没有找到')
nameList = ['xiaoWang','xiaoZhang','xiaoHua']
#获取用户要查找的名字
findName = input('请输入要查找的姓名:')
#查找是否存在
if findName in nameList:
print('在字典中找到了相同的名字')
else:
print('没有找到')
运行结果:
not in
如果不存在那么结果为 true,否则false
#待查找的列表nameList = ['xiaoWang','xiaoZhang','xiaoHua']#获取用户要查找的名字findName = input('请输入要查找的姓名:')#查找是否存在if findName not in nameList: print('没有找到')elif findName in nameList: print('找到了')
nameList = ['xiaoWang','xiaoZhang','xiaoHua']
#获取用户要查找的名字
findName = input('请输入要查找的姓名:')
#查找是否存在
if findName not in nameList:
print('没有找到')
elif findName in nameList:
print('找到了')
运行结果:
not in : 翻译成大白话就是,如果 ....什么什么.... 不在 啥玩意 里面,那么就执行缩进段内的代码。
哈哈,这样一翻译,是不是很通俗易懂了。
二、元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
numTuple = (1,2,3,4)print(numTuple) # 结果为:(1,2,3,4)
print(numTuple) # 结果为:(1,2,3,4)
(1)访问元组
访问元组中的数据,也可以通过下标来访问元组
numTuple = (1,2,3,4)print(numTuple[0]) # 结果为: 1
print(numTuple[0]) # 结果为: 1
(2)修改元组
numTuple = (1,2,3,4)numTuple[0] = 51,2,3,4)
numTuple[0] = 5
抛出异常:---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-54-7978431cbe37> in <module> 1 numTuple = (1,2,3,4)----> 2 numTuple[0] = 5TypeError: 'tuple' object does not support item assignment
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-54-7978431cbe37> in <module>
1 numTuple = (1,2,3,4)
----> 2 numTuple[0] = 5
TypeError: 'tuple' object does not support item assignment
元组中的不可变对象是不能被修改的哟.如果里面是列表等可变数据类型的话,可以进行修改.
三、字典
在这里咱们仔细想一下哟~,假设有个列表里面存储的是学生的名字。当学生的名字错误,需要修改的时候,可以通过 列表名[索引] 的方式来进行修改,但是如果列表的顺序发生了变化,此时呢就需要修改下标,才能完成名字的修改。
提出疑问:有没有什么方法,既能存储多个数据,还能在访问元素得时候很方便就能够定位到元素呢?
答案:当然是通过接下来要讲得 字典 啦~向下看咯
生活中的字典:
软件开发中的字典:
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}'AKing', 'age':25, 'gender':'man', 'address':'北京'}
说明字典和列表一样,也能够存储多个数据。
列表中找某个元素时,是根据下标进行的。
字典中找某个元素时,是根据 '名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'age'、'gender')
字典的每个元素由2部分组成,键:值。例如 'name':'AKing' ,'name'为键,'AKing'为值
(1)根据键访问值
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print(info['name'])print(info['age'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
print(info['name'])
print(info['age'])
运行结果:
若访问的 键名 不存在则抛出异常。
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print(info['height']) # 访问 info 字典中键名为"height"的值,但是...值呢?他没有值阿。抛出异常:--------------------------------------------Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyError: 'height''AKing', 'age':25, 'gender':'man', 'address':'北京'}
print(info['height']) # 访问 info 字典中键名为"height"的值,但是...值呢?他没有值阿。
抛出异常:
--------------------------------------------
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'height'
(2)修改元素
字典的每个元素中的数据是可以修改的,只要通过 key 找到,即可修改
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}new_address = '上海'info['address'] = new_address print('修改之后的 address 为: %s' % info['address'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
new_address = '上海'
info['address'] = new_address
print('修改之后的 address 为: %s' % info['address'])
运行结果:
(3)添加元素
如果在使用 字典名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素。
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}# print('id为:%d'%info['id']) # 程序会中断运行,因为访问了不存在的键id = 6948info['id'] = idprint('添加之后的id为:%d' % info['id'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
# print('id为:%d'%info['id']) # 程序会中断运行,因为访问了不存在的键
id = 6948
info['id'] = id
print('添加之后的id为:%d' % info['id'])
运行结果:
(4)删除元素
对字典进行删除操作,有一下几种:
del
clear()
del 删除指定得元素
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print('删除前,%s' % info['name'])del info['name'] # 删除之后,值也跟着删除print('删除后,%s' % info['name'])'AKing', 'age':25, 'gender':'man', 'address':'北京'}
print('删除前,%s' % info['name'])
del info['name'] # 删除之后,值也跟着删除
print('删除后,%s' % info['name'])
运行结果:
del 删除整个字典
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}del info # del 字典名,这样的话字典的数据就全被删除了print(info)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
del info # del 字典名,这样的话字典的数据就全被删除了
print(info)
运行结果:
clear 清空整个字典
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}print('清空前,%s' % info)info.clear() # 字典名.clear() 清空字典中所有键值对数据print('清空后,%s' % info)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
print('清空前,%s' % info)
info.clear() # 字典名.clear() 清空字典中所有键值对数据
print('清空后,%s' % info)
运行结果:
(5)字典的常用方法
len()
len : 代表长度 length 的意思
测量字典中,键值对的个数
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}len(info) # 结果为 4'AKing', 'age':25, 'gender':'man', 'address':'北京'}
len(info) # 结果为 4
keys()
keys :翻译为 键。
返回一个包含字典所有 key 的列表
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.keys() # 结果返回列表,存储的都是键名'AKing', 'age':25, 'gender':'man', 'address':'北京'}
info.keys() # 结果返回列表,存储的都是键名
values()
values :意思为复数的 value ,表示为多个值
返回一个包含字典所有 value 的列表
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.values() # 结果返回列表,存储的都是 values 值'AKing', 'age':25, 'gender':'man', 'address':'北京'}
info.values() # 结果返回列表,存储的都是 values 值
items()
items :表示为所有物品,是 item 的复数形式
返回一个包含所有(键,值)元祖的列表
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}info.items()'AKing', 'age':25, 'gender':'man', 'address':'北京'}
info.items()
运行结果:
(6)字典的遍历
通过 for ... in ... 我们可以遍历字符串、列表、元组、字典等
遍历字典的 key 键
可以通过 for i in 字典名.keys(): 获取 键名
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for i in info.keys():print(i)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
for i in info.keys():
print(i)
运行结果:
遍历字典的 values 值
可以通过 for i in 字典名.values(): 获取 值
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for i in info.values():print(i)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
for i in info.values():
print(i)
运行结果:
遍历字典的 items 键值对
可以通过 for item in 字典名.items(): 获取 键名和值
info = {'name':'AKing', 'age':25, 'gender':'man', 'address':'北京'}for item in info.items():print(item)'AKing', 'age':25, 'gender':'man', 'address':'北京'}
for item in info.items():
print(item)
运行结果:
四、三元表达式
为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)
# 举个栗子a = 1b = 2h = ""h = a-b if a>b else a+bprint(h)
a = 1
b = 2
h = ""
h = a-b if a>b else a+b
print(h)
实际操作:
执行过程:
干货|Python基础入门 课程笔记(三)的更多相关文章
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- Python基础入门总结
Python基础入门教学 基础中的基础 列表.元组(tuple).字典.字符串 变量和引用 函数 python视频教程下载 基础中的基础 解释型语言和编译型语言差距: Python概述 解释器执行原理 ...
- Python基础入门教程
Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...
- 《Python爬虫技术:深入理解原理、技术与开发》已经出版,送Python基础视频课程
好消息,<Python爬虫技术:深入理解原理.技术与开发>已经出版!!! JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送Python基础视频课程!J ...
- JS基础入门篇(三十五)—面向对象(二)
如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)
- PJzhang:python基础入门的7个疗程-one
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- python数据分析入门学习笔记儿
学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...
随机推荐
- Tomcat生产环境应用
概要: Tomcat各核心组件认知 Tomcat server.xml 配置详解 Tomcat IO模型介绍 一.Tomcat各组件认知 Tomcat架构说明 Tomcat组件及关系详情介绍 Tomc ...
- 整合 KAFKA+Flink 实例(第一部分,趟坑记录)
2017年后,一大波网络喧嚣,说流式处理如何牛叉,如何高大上,抱歉,工作满负荷,没空玩那个: 今年疫情隔离在家,无聊,开始学习 KAFKA+Flink ,目前的打算是用爬虫抓取网页数据,传递到Kafk ...
- Spring事务Transactional和动态代理(二)-cglib动态代理
系列文章索引: Spring事务Transactional和动态代理(一)-JDK代理实现 Spring事务Transactional和动态代理(二)-cglib动态代理 Spring事务Transa ...
- 7-36 jmu-python-统计字符个数 (10 分)
输入一个字符串,统计其中数字字符及小写字符的个数 输入格式: 输入一行字符串 输出格式: 共有?个数字,?个小写字符,?填入对应数量 输入样例: helo134ss12 输出样例: 共有5个数字,6个 ...
- 利用iTunes给MP3添加专辑插图
利用iTunes给MP3添加专辑插图 打开iTunes 准备好没有专辑插图的mp3文件和插图 将准备好的mp3文件拖入iTunes 右键菜单选择专辑信息选项 在专辑信息里面选择插图 点击左下角的添加插 ...
- Asp.Net Core 中IdentityServer4 授权中心之应用实战
一.前言 查阅了大多数相关资料,查阅到的IdentityServer4 的相关文章大多是比较简单并且多是翻译官网的文档编写的,我这里在 Asp.Net Core 中IdentityServer4 的应 ...
- Map - 与君初相识
前言 生活中,我们常会看到这样一种集合:IP地址与主机名,身份证号与个人等,这种一 一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对应关系的对象,即 java.util.Map 接口 ...
- vector的初始化方式及用法笔记(不断更新)
vector的初始化方式 1)第一种,类似于数组的方式:vector<string> letter(3);letter[0] = "find";letter[1] = ...
- Vue2.0 【第一季】第4节 v-text & v-html
目录 Vue2.0 [第一季]第4节 v-text & v-html 第四节 v-text & v-html Vue2.0 [第一季]第4节 v-text & v-html 第 ...
- 按 ctrl 时会触发 shift ,导致不能正常使用 ctrl + c 复制
问题描述 不能使用 ctrl 功能键组合,原因是按 ctrl 时 shift 也会被触发. win 10 电脑为例,可以打开虚拟键盘查看按键情况. 当我按下 ctr时 可见 shift 也被触发了. ...