鱼C论坛

 找回密码
 立即注册
查看: 1667|回复: 0

[技术交流] 《零基础入门学习Python》第十第十一第十二 《打了激素的数组》笔记

[复制链接]
发表于 2019-2-14 18:22:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Ice_in_left 于 2019-2-26 10:49 编辑

第十节内容
01.png

打了激素的数组

0. 数组概念:把同种类型的数据放在一起,按照下标进行索引。
        因为 python 没有数据类型,所以按照这个节奏来说 python 是没有数组的。
        但是 python 加入了更为强大的列表。
        python 的列表可以把一切你能看到的东西,或者你从 python 中听说过的东西打包进去。
        如果把数组比作一个集装箱的话,那么 python 的列表就是一个工厂的仓库了。
       
1. 创建列表
        1.0 创建一个普通列表
       
  1. member = ['小甲鱼','小布丁','黑夜','迷途','怡静']
  2. member
  3. ['小甲鱼','小布丁','黑夜','迷途','怡静']
  4. number = [1,2,3,4,5]
  5. number
  6. [1,2,3,4,5]
复制代码

        1.1 创建一个混合列表
       
  1. mix = [1,"小甲鱼",3.14,[1,2,3]]
  2. mix
  3. [1,"小甲鱼",3.14,[1,2,3]]
复制代码

        1.2 创建一个空列表
       
  1. empty = []
  2. empty
  3. []
复制代码


2. 向列表添加元素
        2.0 append() 方法
       
  1. member.append('福禄娃娃')
  2. member
  3. ['小甲鱼','小布丁','黑夜','迷途','怡静','福禄娃娃']
  4. len(member)  6
复制代码


这个点(.)表示范围,在对象中,属于对象的函数称为方法
append()这个方法属于member列表对象的方法。用点限制作用域
append() 方法向列表中添加两个元素时:
member.append('竹林小溪','Crazy迷恋')报错!
       
  1. >>> member.append('竹林小溪','Crazy迷恋')
  2. Traceback (most recent call last):
  3.   File "<pyshell#41>", line 1, in <module>
  4.     member.append('竹林小溪','Crazy迷恋')
  5. NameError: name 'member' is not defined
复制代码

这时引入第二个方法
       
2.1 extent() 方法
  1. member.extent(['竹林小溪','Crazy迷恋'])
复制代码

        extent() 方法是将两个列表合成一个。所以不可以写成member.extent('竹林小溪','Crazy迷恋')。会报错,
               
2.2 insert()方法
        member.insert(1,'牡丹')
        两个参数第一个是插入列表的索引位置。第二个是插入的元素。
        顺序索引从0开始。大多数编程语言从0开始是约定俗成的规范。
       
第十一节内容

0.获取列表中的值
        从列表中获取元素跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表索引值是从0开始的。

  1. member = ['小甲鱼','牡丹','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
  2. member[0]
  3. '小甲鱼'
  4. member[1]
  5. '牡丹'
复制代码

        把元素 '小甲鱼' 和 '牡丹'换位置
  1. temp = member[0]
  2. member[0] = member[1]
  3. member[1] = temp
  4. member = ['牡丹','小甲鱼','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
复制代码


1.删除列表中的值
        1.0 remove()方法
       
  1. member.remove('怡静')
复制代码

                remove要知道需要删除的元素的名字,不需要知道位置。

        1.1 del
                del 不是一个方法所以不需要加()
  1. member = ['牡丹','小甲鱼','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
  2. del member[1]  # 把小甲鱼从列表中删除
  3. del member # 把这个列表删除
复制代码


        1.2 pop()
                取出列表中的元素。
                不传参数默认取出最后一个。
                传参数,按照索引取出。
                pop()方法是有返回值的。取出值并返回。
       
  1. member = ['牡丹','小甲鱼','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
  2. name = member.pop()
  3. name
  4. 'Crazy迷恋'
复制代码


2 列表分片(Slice)
        利用索引值,每次我们可以从列表获取一个元素,但是我们总是贪心的,如果一次性需要获取多个元素,有没有办法实现呢?利用列表分片,我们可以简单的实现这个要求。
  1. member[1:3]
  2. # 得到一个原来列表的拷贝。原列表并不改变。
  3. # [1:3] 包含1,不包含3
  4. member[:3]
  5. # 从最开始到第二个
  6. member[1:]
  7. # 从第二个到最后一个
  8. member[:]
  9. #得到一个原来列表的拷贝。如果想对列表做出某些修改,又想保持原来的列表就可以进行拷贝。
复制代码



第十二节内容

0.  比较操作符
  1. list1 = [123]
  2. list2 = [234]
  3. list1 > list2
  4. False

  5. list1 = [123,456]
  6. list2 = [234,123]
  7. list1 > list2
  8. False
复制代码


如果有多个元素优先比较第零个元素。只要有一个PK赢了就不用考虑后面的元素了。

1.  逻辑操作符
  1. list3 = [123,456]
  2. (list1 < list2) and (list1 == list3)
  3. True
复制代码


2.  连接操作符
        列表跟字符串的拼接有相似性,但是不完全一样
  1. list4 = list1 + list2
  2. list4
  3. [123, 456, 234, 123]
复制代码

        相当于把两个列表的值拼接在一起
        这种情况相当于extent()方法来进行扩展列表。
        + 不能实现向列表中添加新元素的操作,会报错。
        例如:
        list1 + '小甲鱼'
        + 两边的类型必须相同 左边是列表右边也必须是列表

3.  重复操作符
  1. list3 * 3
  2. [123, 456, 123, 456, 123, 456]

  3. # 重复操作符加上赋值操作符
  4. list3 *= 3
  5. list3
  6. [123, 456, 123, 456, 123, 456]

  7. list3 *= 5
  8. list3
  9. [123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
复制代码


4.  成员操作符
  1. 123 in list3
  2. True

  3. '小甲鱼' not in list3
  4. True

  5. 123  not in list3
  6. False

  7. list5 = [123,['小甲鱼','牡丹'],456]
  8. '小甲鱼' in list5
  9. False
  10. # in 无法直接判断列表里面的列表的元素,需要再人为的引入一层

  11. '小甲鱼' in list5[1]
  12. list5[1][1]
  13. '牡丹'
复制代码


5.  列表的其他方法

  1. # 列表中这个元素出现的次数
  2. list3.count(123)
  3. 15

  4. # 返回这个值在列表中出现的位置
  5. list3.index(123)
  6. 0
  7. # 限定范围后这个元素出现第一次的索引值
  8. list3.index(123,3,7) 范围,3,7
  9. 4

  10. revers
  11. # 列表元素顺序反转
  12. list3.reverse()
  13. list3
  14. [456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123]

  15. list6 = [4,2,5,1,9,23,32,0]
  16. # 列表从小到大排序
  17. list6.sort()
  18. list6
  19. [0, 1, 2, 4, 5, 9, 23, 32]

  20. # 反向排序
  21. list6.sort(reverse = True)
  22. list6
  23. [32, 23, 9, 5, 4, 2, 1, 0]
复制代码


        sort(func,key,reverse) 前两个默认规定排序。reverse 默认false 顺序排列。True 倒序

        分片拷贝注:
       
  1. list7 = list6[:]
  2. list7
  3. [32, 23, 9, 5, 4, 2, 1, 0]
  4. list8 = list6
  5. list8
  6. [32, 23, 9, 5, 4, 2, 1, 0]

  7. list6.sort()
  8. list7
  9. [32, 23, 9, 5, 4, 2, 1, 0]
  10. list8
  11. [0, 1, 2, 4, 5, 9, 23, 32]
复制代码

        03_2.png
                赋值是给同一个地址贴一个新的标签而已。
                拷贝分片是把原列表在内存中拷贝成一个新的同样的列表。

手动下一页!
《零基础入门学习Python》第十三第十四《元组》《字符串:各种奇葩的内置方法》笔记

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 08:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表