零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80146 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
29
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 11 | 列表的定义和常用操作
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | Python语言的特点
02 | Python的发展历史与版本
03 | Python的安装
04 | Python程序的书写规则
05 | 基础数据类型
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

课程源码、课件及课后作业地址:

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(29)

  • 最新
  • 精选
郭锐
请问老师你是怎么一下注释那么多的呐

作者回复: pycharm 支持一个快捷键 ctrl + /

2019-09-12
4
洛水
请教老师一个问题: 就是在练习4我给元组里定义的字符串为什么不能用连接操作符?而数字却是可以的? # 练习二 字符串基本操作 # 定义两个字符串分别为 xyz 、abc # 对两个字符串进行连接 # 取出xyz字符串的第二个和第三个元素 # 对abc输出10次 # 判断a字符(串)在 xyz 和 abc 两个字符串中是否存在,并进行输出 xyz="xyz" abc="abc" print(xyz+abc) print(abc*10) print(xyz[1]) print(xyz[2]) print("a" in xyz) print("a" in abc) # 练习三 列表的基本操作 # 定义一个含有5个数字的列表 # 为列表增加一个元素 100 # 使用remove()删除一个元素后观察列表的变化 # 使用切片操作分别取出列表的前三个元素,取出列表的最后一个元素 abc_list=["123","456","789"] abc_list.append("丁香") print(abc_list) abc_list.remove("456") print(abc_list) print(abc_list[0:2]) print(abc_list[-1]) # 练习四 元组的基本操作 # 定义一个任意元组,对元组使用append() 查看错误信息 # 访问元组中的倒数第二个元素 # 定义一个新的元组,和 1. 的元组连接成一个新的元组 # 计算元组元素个数 a=(u'巨蟹座',u'天蝎座',u'摩羯座') #a.append(u'白羊座') print(a[-2]) b=(u'双子座') #print(a+b) c=(11,12,13,14) d=(65,21,22,45) print(c+d) print(len(c+d))

作者回复: 注意b“元组”只有一个元素,而在括号内没增加逗号“,” 导致python认为b是字符串,可以用type(b)来查看一下。另外报错信息也提示tuple不能和str类型相加

2018-12-22
2
邹小熊在减肥吗?
尹老师,在做github上序列的练习题时遇到两个问题,求解惑。 序列练习二第三项-取出字符串的第二第三元素,我尝试把字符串赋值为序列,那么使用中括号按顺序就很容易切割了,不知道您命题的原意是否是使用这个方法,还是使用filter? 练习四中元祖的操作练习我觉得应该就是对filter功能的应用了,但我在练习时遇到很奇怪的问题是,在PyCharm环境下没法实现filter功能,不知道是自己的代码有问题还是怎么,但同样的代码我又在官方自带的IDLE上试了下,是成功的…不知道哪里出了问题。 最后给pc端提个意见…似乎网页版并不支持留言,我还得特意回到手机上提问题,码字很累…其实条件允许的情况下还是在电脑上学习比较方便,可以跟着练习,希望老师能跟产品组反馈一下。 谢谢尹老师,课程很棒,我会努力跟上学下去!

作者回复: 谢谢邹同学,我会将你的意见反馈给产品组,优化大家的学习平台的,如果问题较长建议从PC端编辑,粘贴到留言区,手机码字真的…..有点累。 第一个问题: 首先,字符串、元组、列表都是“序列”的一部分,序列是总的概念,我们不能直接使用序列,要把他们具体化成一类可操作的类型,即:字符串、元组、列表了。这里主要希望大家通过字符串的操作掌握序列的用法,这种用法同样适用于元组、列表。一学三用有没有:P 取得字符串的第二、三个元素在Python里面和其他语言是有很大差异的,而Python可以通过序列操作非常非常简单的就能获取到指定元素,其他语言则要做些处理和转换,因此我设计了这样一个题目,并不需要使用filter。 第二个问题: Python中的元组和列表很相似,区别是元组内的元素不可修改。例如我定义一个元组: tup1 = (1, 2, 3, 4),使用 tup1.add(5) 会报错,这是由元组本身的特性决定的; 第2个和第3个也不需要使用filter()函数来实现,考虑他们都是序列类型,可以使用序列操作的方法来实现一下; 第4个可以使用计算字符串、列表的函数即可完成。 作业的答案我会在后面的更新过程中公布出来的,这里需要通过大量练习熟练掌握序列的基本操作方法。无论在后面的学习还是工作中,序列操作都会有大量的应用。

2018-06-01
2
Geek_ed9aec
老师这个只能删除一个吗?第二个不能删除掉吗? a_zhang=['zhang','rong'] a_zhang.append('zhang') print (a_zhang) a_zhang.remove('zhang') print (a_zhang)

作者回复: >>> a=[1,23,1,1] >>> [i for i in a if i != 1] 可以使用列表推导式,remove()只能删除一个

2020-05-21
1
毛绒园长
求助:为什么比课程里的多了两个print,输出结果就是摩羯不是双鱼。。。。 zodiac_name = ('摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手') zodiac_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23)) (month,day) = (3,10) zodiac_day = filter(lambda x: x<=(month,day), zodiac_days) print(list(zodiac_day)) zodac_len = len(list(zodiac_day)) % 12 print(zodac_len) print(zodiac_name[zodac_len])

作者回复: filter() 是一种叫做迭代器的类型,可以把里面的值当作一次性的,每读取一个里面的值会减少一个

2020-03-27
1
农夫山泉
请问老师,python的数据结构就是列表、元组、等方法是怎么实现的吗?还怎么去学习数据结构

作者回复: 1 基础数据类型就是 数字、字符串、列表、元组、字典、集合,他们是在python编写时(使用C语言)实现的。 2 从数据结构上来看可以使用这些基础的数据类型实现表、树、图、栈以及根据语言的特性做各种排序、查找操作。

2019-02-18
1
ximiya
列表的写法和集合的写法一致,都是用[]来定义。那么如何区分列表和集合,以及二者之间的关系和区别是什么?

作者回复: 列表和集合定义的符合是不同的,列表是方括号“[]”集合是花括号“{}”。如定义一个集合: myset={'a','b','c','a'} print(type(myset)) print(myset) 列表和集合都是python的基本数据结构,和列表比起来集合类型不能索引,不能切片,也不能有重复的元素,被用作高效去除重复元素来使用

2018-10-28
1
董欢
zodiac_name=(u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座', u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')#u防止乱码 zodiac_days=((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,21),(8,23),(9,23),(10,23),(11,23),(12,23))#元组嵌套 (month,day)=(5,15) zodiac_day=filter(lambda x:x<=(month,day),zodiac_days)#取出小于(month,day)的所有元素,filter是一种迭代器的类型,每读取一个里面的值会减少一个 print(list(zodiac_day)) zodiac_len=len(list(zodiac_day))%12#list显示内容,len取出括号内的个数,如果是元组嵌套,无法数出长度 print(zodiac_len) 尹老师,上面这里多增加一个print(list(zodiac_day)),就会影响print(zodiac_len)的结果,增加后打印为0,不增加打印为4,这是为什么呢?

作者回复: 因为filter函数的输出结果是一个迭代器。迭代期的内容只能被读取一次。如果使用list进行读取之后,再次读取里面就是空的,所以它的长度变为了0。

2021-01-25
꧁꫞꯭2020꫞꧂
请问我使用 append为list增加了一个元素 然后是我是用 prin功能打印出来。 为什么打印出来的是一个int类型的,而不是list呢? 代码如下 list = [1, 2 ,3 ,4 ,5] list.append(100) print(type(list[-1])) # 打印出是一个int类型 print(type(list[0::2]))# 打印出是一个list

作者回复: 1 列表是个复合类型,也就是列表中的一个元素可以是列表,也可以是数字 2 list[-1] 是取得一个元素,所以看到的是列表里元素本来的类型 3 list[0::2]取的是列表的一个子集,仍然是列表

2020-09-06
NULL
alist = [1,2,3,4,5] print(alist.append(100)) 运行结果为什么是None呢 难道要给alist.append()声明一个变量嚒

作者回复: append之后,alist列表会变化,所以返回值是0

2020-03-27
收起评论