python入门学习第011课

此日记只为了方便自己复盘,如有涉及版权问题,归小甲鱼官方所有。

一、测试题

0. 下边的列表分片操作会打印什么内容?

>>> list1 = [1, 3, 2, 9, 7, 8]

>>> list1[2:5]

答0:[2,9,7]

1. 请问 list1[0] 和 list1[0:1] 一样吗?

答1:输出结果一样,但类型不一样。list1[0]是一个元素,list[0:1]是一个列表。

2. 如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?

答2:

list = [0,1,2,3,4,5,6]

for i in range(6):

    list.insert(0,list.pop(6))

    print(list)

3. 有些鱼油比较调皮,他说我想试试 list1[-3:-1] 会不会报错,怎么知道一试居然显示 [9, 7],这是怎么回事呢?

答3:因为python3有负数索引,正数索引[0:5]是从左往右计数,负数索引[-6:-1]是从右往左计数。如下图(图片来自https://www.jianshu.com/p/bb58a17b6814

4. 在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长。

>>> list1[0:6:2]

[1, 2, 7]

那么依你推测,关于步长的知识点还有哪些(很多知识点都是通用的)?

答4:list1[0:6] 打印输出为[0,3,2,9,7,8],默认步长是1。

步长也分为正数步长和负数步长:

正数步长是从左开始到右边的结束下标,[0:6]中从0(包含0)开始到6(不包含6)结束,若结束下标为空则返回一个空。(例如:list[0:]打印输出 [0,3,2,9,7,8])

负数步长是从右开始到左边的结束下标,[-7:-1]中从-1(包含-1)开始到-7(不包含-7)结束,若结束下标为空则返回一个空。(例如:list[:-1] 打印输出 [0,3,2,9,7,8])

5. 课堂上小甲鱼说可以利用分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?

答5:

不可以,第一个是把list1[:]中的内存赋予list2列表,第二个是把自己list1列表直接赋予list2列表。

6.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

答6:list = ['xx','aa','bb','cc']

1、remove():是一个方法,将列表中具体名字的元数删除,(例如:list.remove('xx')打印输出['aa','bb','cc'])

2、dell():是一个语句,将列表中某个指定位置的元素删除,(例如:dell list(1)打印输出['xx','bb','cc'])也可以删除整个列表(dell list)

3、pop():将列表中取出某个元素,如果不输入位置,将默认取出最后一位。(例如:list.pop()打印输出'cc',也可以liist.pop(1)打印输出 'xx',同时也可以赋值给某个名字name = list.pop()打印输出'cc')

4、列表索引值是从0开始。

5、列表分片:list[0:2]打印输出['xx','aa'],list[:2]打印输出['xx','aa'],list[0:]打印输出 ['xx','aa','bb','cc'],

list[:]打印输出['xx','aa','bb','cc']。

二、动动手

0、自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?

假定给以下列表:

member = [‘小甲鱼’, ‘黑夜’, ‘迷途’, ‘怡静’, ‘秋舞斜阳’]

要求将列表修改为:

member = [‘小甲鱼’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡静’, 90, ‘秋舞斜阳’, 88]

方法一:使用insert()和append()方法修改列表。

方法二:重新创建一个同名字的列表覆盖。

答0:

方法一:member.insert(1,'88');member.insert(1,'90');member.insert(1,'85');member.insert(1,'90');member.insert(1,'88');

方法二:member =  [‘小甲鱼’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡静’, 90, ‘秋舞斜阳’, 88]

1、利用for循环打印上边member列表中的内容

答1:

member =  [‘小甲鱼’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡静’, 90, ‘秋舞斜阳’, 88]

for i in member:

    print(i)

2、上一题打印的样式不是很好,能不能修改以下代码打印成下图的样式呢?【请至少使用两种方法实现】

答2:

方法一:

member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

times = 0

while times < len(member):

    print(member[times],member[times + 1])

    times += 2

方法二:

member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

for i in range(len(member)):

    if i % 2 ==0:

        print(member[i],member[i + 1])

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 010、011、012讲列表:一个打了激素的数组 课堂笔记: 0.Python中不直接定义元素的类型,所以列表中的...
    小鲤_8ae4阅读 319评论 0 1
  • 此日记只为了方便自己复盘,如有涉及版权问题,归小甲鱼官方所有。 一、测试题 0. 列表都可以存放一些什么东西? 答...
    Eddie老大叔阅读 525评论 0 0
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 1,001评论 0 1
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,959评论 0 9
  • 列表序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字- 它的位置,或索引,第一个索引是0,第二...
    spyder_men阅读 770评论 0 0