目录

  • 列表

  • 元组

  • 字典

  • 三元表达式

一、列表

前面学习的字符串可以用来存储一串信息,那么想一想,如果现在有很多人,总不能每个人都起一个变量名把?那岂不得疯~

咱们可以使用列表。

(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基础入门 课程笔记(三)的更多相关文章

  1. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  2. Python基础知识总结笔记(四)函数

    Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...

  3. Python基础入门总结

    Python基础入门教学 基础中的基础 列表.元组(tuple).字典.字符串 变量和引用 函数 python视频教程下载 基础中的基础 解释型语言和编译型语言差距: Python概述 解释器执行原理 ...

  4. Python基础入门教程

    Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...

  5. 《Python爬虫技术:深入理解原理、技术与开发》已经出版,送Python基础视频课程

    好消息,<Python爬虫技术:深入理解原理.技术与开发>已经出版!!!   JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送Python基础视频课程!J ...

  6. JS基础入门篇(三十五)—面向对象(二)

    如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)

  7. PJzhang:python基础入门的7个疗程-one

    猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 安全从 ...

  8. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  9. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

随机推荐

  1. 下一代网际协议IPv6

    下一代网际协议IPv6 一.解决 IP 地址耗尽的措施 从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用. 最主要的问题就是 32 位的 IP 地址不够用. 在 2019 ...

  2. CountDownLatch源码探究 (JDK 1.8)

    CountDownLatch能够实现让线程等待某个计数器倒数到零的功能,之前对它的了解也仅仅是简单的使用,对于其内部如何实现线程等待却不是很了解,最好的办法就是通过看源码来了解底层的实现细节.Coun ...

  3. Arthas 实战,助你解决同名类依赖冲突问题

    上篇文章中,小黑哥分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,可能存在差异. 项目不同依赖应用,存在包名,类名完全一样的类. 第二种情况,往往是这个场景,本地 ...

  4. 想要成为一名优秀的Java程序员,你需要这8个锦囊

    私底下,隔三差五就有读者问我:"二哥,怎么样才能像你一样,成为一名优秀的 Java 开发者呢?"假如把"怎么才能像你一样"去掉的话,这个问题就是一个好问题,否则 ...

  5. Java 八种基本类型和基本类型封装类

    1.首先,八种基本数据类型分别是:int.short.float.double.long.boolean.byte.char:   它们的封装类分别是:Integer.Short.Float.Doub ...

  6. Mac结合Docker开发

    Mac结合Docker开发 前几天在看Java并发实战时,在Mac上写了一个示例,结果运行后无法按照书本上运行.主要是有些命令,在Mac和Linux是有区别的,比如top, Mac上是不支持-Hp,意 ...

  7. c++中比较好用的黑科技

    切入正题,上黑科技 一.黑科技函数(常用的我就不写了,例如sort函数) 1.next_permutation(a+1,a+1+n) a[1-n]全排列 2.reverse(a+1,a+1+n) 将a ...

  8. 回想笔记 瞎比比 域名注册 解析绑定ip 下载证书 设置证书 重定向http到https请求

    2019.7.27 回想笔记 拥有腾讯云服务器一台 阿里云注册5元域名,进行备案 完成之后 使用解析 绑定服务器ip地址 ,使用域名可以访问到web服务器而不是通过直接暴露ip地址进行访问 证书购买 ...

  9. ApplicationContextInitializer的理解和使用

    一.ApplicationContextInitializer 介绍 1.1 作用 ApplicationContextInitializer 接口用于在 Spring 容器刷新之前执行的一个回调函数 ...

  10. Python数据科学手册(2) NumPy入门

    NumPy(Numerical Python 的简称)提供了高效存储和操作密集数据缓存的接口.在某些方面,NumPy 数组与 Python 内置的列表类型非常相似.但是随着数组在维度上变大,NumPy ...