zoukankan      html  css  js  c++  java
  • 零基础入门学习Python(10)--列表:一个打了激素的数组

    前言

    有时候我们需要把一些东西暂时保存起来,因为他们有着一些直接或间接的联系,我们需要把它们放在某个组或者集合中,未来可能用得上。

    很多接触过编程的朋友都知道,都接触过数组这个概念,那么数组这个概念事实上很简单,把一大堆同总类型数据挨个摆在一块,然后通过数组的下标进行索引,但是数组有一个基本的要求,你所放在一起的数据必须类型要一致。

    由于Python的变量没有数据类型,所以按这个节奏来说,Python是没有数组的,但是Python加入了更加强大的列表。如果把数组比作是一个集装箱的话,那么Python的列表就是一个工厂的仓库,基本上所有的Python程序都需要使用到我们的列表,包括我们之前的打飞机游戏。

    知识点

    创建列表

    • 创建一个普通列表
    >>> member = ['小甲鱼','小布丁','黑夜','怡静']
    >>> member
    ['小甲鱼', '小布丁', '黑夜', '怡静']
    >>> number = [1,2,3,4,5]
    >>> number
    [1, 2, 3, 4, 5]
    • 创建一个混合列表
    >>> mix = [1,'小甲鱼',3.14,[1,2,3]]
    >>> mix
    [1, '小甲鱼', 3.14, [1, 2, 3]]
    • 创建一个空列表
    >>> empty = []
    >>> empty
    []

    向列表添加元素

    • append()
    >>> member
    ['小甲鱼', '小布丁', '黑夜', '怡静']
    >>> member.append()('葫芦娃哇')
    Traceback (most recent call last):
      File "<pyshell#9>", line 1, in <module>
        member.append()('葫芦娃哇')
    TypeError: append() takes exactly one argument (0 given)
    >>> member.append('葫芦娃哇')
    >>> member
    ['小甲鱼', '小布丁', '黑夜', '怡静', '葫芦娃哇']
    >>> 
    >>> member.append('竹林小溪','Crazy迷恋')
    Traceback (most recent call last):
      File "<pyshell#13>", line 1, in <module>
        member.append('竹林小溪','Crazy迷恋')
    TypeError: append() takes exactly one argument (2 given)
    • extend()
    >>> member.extend('竹林小溪','Crazy迷恋')
    Traceback (most recent call last):
      File "<pyshell#14>", line 1, in <module>
        member.extend('竹林小溪','Crazy迷恋')
    TypeError: extend() takes exactly one argument (2 given)
    >>> member.extend(['竹林小溪','Crazy迷恋'])
    >>> member
    ['小甲鱼', '小布丁', '黑夜', '怡静', '葫芦娃哇', '竹林小溪', 'Crazy迷恋']
    >>> 
    • insert()
    有两个参数,第一个参数代表在列表中的位置,第二个参数表示在第一个参数的位置插入一个元素
    
    >>> member.insert(0,'牡丹')
    >>> member
    ['牡丹', '小甲鱼', '小布丁', '黑夜', '怡静', '葫芦娃哇', '竹林小溪', 'Crazy迷恋']
    >>> 

    课后习题

    测试题

    1. 列表可以存放一些什么东西?

      它可以存放我们已经学习过的任何数据类型。
      >>> mix = [1,'小甲鱼',3.14,[1,2,3]]

    2. 向列表增加元素有哪些方法?

      append(),extend(),insert()

    3. append()方法和extend()方法都是向列表末尾增加元素,请问他们有什么区别?

      apend()方法是将参数作为一个元素增加到列表的末尾。
      extend()方法是将参数作为一个列表去扩展列表的末尾。
      示例:
      >>> a = [1,2.3]
      >>>a.append([4,5])
      >>> a
      [1, 2.3, [4, 5]]
      >>> a.extend([4,5])
      >>> a
      [1, 2.3, [4, 5], 4, 5]

    4. 有列表name = ['F','i','h','C'],如果小甲鱼想在元素ih之间插入元素s,应该用什么方法插入?

      >>> name = ['F','i','h','C']
      >>>
      >>> name.insert(2,'s')
      >>> name
      ['F', 'i', 's', 'h', 'C']

    动动手

    • 动动手看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
      假设给定以下列表:
      member = ['小甲鱼','黑夜','迷途','怡静','秋舞斜阳']
      要求将列表修改为:
      member = ['小甲鱼',88,'黑夜',90,'迷途',85,'怡静',90,'秋舞斜阳',88]
      方法一:使用insert() 和append方法修改列表
    >>> member = ['小甲鱼','黑夜','迷途','怡静','秋舞斜阳']
    >>> member.insert(1,88)
    >>> member.insert(3,90)
    >>> member.insert(5,85)
    >>> member.insert(7,90)
    >>> member.append(88)
    >>> member
    ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

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

    >>> member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
    >>> member
    ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
    • 利用for循环打印上边member列表中的内容,如图:
      这里写图片描述
    >>> for i in member:
        print(i)
    
    
    小甲鱼
    88
    黑夜
    90
    迷途
    85
    怡静
    90
    秋舞斜阳
    88
    • 上一题打印的格式不是很好,能不能修改一下代码打印成下图的样式?(至少两种方法)
      这里写图片描述
    member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
    
    count = 0
    length = len(member)
    while count < len(member):
        print(member[count],member[count+1])
        count += 2
    
    === RESTART: C:/Users/ThinkPad/AppData/Local/Programs/Python/Python36/3.py ===
    小甲鱼 88
    黑夜 90
    迷途 85
    怡静 90
    秋舞斜阳 88
    
    ------------------------------------------------
    member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
    
    for i in range(len(member)):
        if i%2 == 0:
            print(member[i],member[i+1])
    
    === RESTART: C:/Users/ThinkPad/AppData/Local/Programs/Python/Python36/3.py ===
    小甲鱼 88
    黑夜 90
    迷途 85
    怡静 90
    秋舞斜阳 88
  • 相关阅读:
    2018.7.26笔记(变量的数据类型,if语句)
    id(),is 和 ==的区别,编码和解
    2018.7.31笔记(列表的基本操作)
    阅读与感悟如何高效学习
    说说设计模式 单例模式
    简单说说Java知识点 多线程
    阅读与感悟联盟
    阅读与感悟非暴力沟通
    简单说说Java知识点 HashMap
    MySQL知识树存储引擎
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514701.html
Copyright © 2011-2022 走看看