前言

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

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

由于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

零基础入门学习Python(10)--列表:一个打了激素的数组的更多相关文章

  1. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  2. 零基础入门学习Python(1)--我和Python的第一次亲密接触

    前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...

  3. 【Python教程】《零基础入门学习Python》(小甲鱼)

    [Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609

  4. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  5. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  6. 零基础入门学习Python(11)--列表:一个打了激素的数组(2)

    前言 上节课我们介绍一个打了激素的数组,叫做列表.列表我们比作一个大仓库,你所能够具现化的东西,都可以往里面扔,它包罗万象.另外还介绍了三个往列表添加元素的方法,分别是: append(),exten ...

  7. 零基础入门学习Python(13)--元组:戴上了枷锁的列表

    前言 这节课我们讨论主题是元祖:我们有个小标题戴上了枷锁的列表 我们都知道早在300多年前,孟德斯鸠在变法的时候说过,一切拥有权力的人都容易被滥用权力,这是万古不变的一条经验.但是呢,凡是拥有大权利的 ...

  8. 零基础入门学习Python(36)--类和对象:给大家介绍对象

    知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...

  9. 零基础入门学习Python(27)--集合:在我的世界里,你就是唯一

    知识点 集合:set set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key. 集合中的元素的三个特征: 1)确定性(元素必须可hash ...

随机推荐

  1. E20170521-ts

    redirect vt. 使改寄,更改(信件等)姓名地址; 改变方向,改变线路; 重新寄送; teletype   n. 电传打字机,电报交换机,打字电报通讯; descriptor n. 描述符; ...

  2. Uix Kit 快速建站前端开发套件-工具箱

    这个产品维护已经有一年了(由于业务需求不同,目前没有做中文版,产品本身是针对国外网站),自己本身是做UI出生,开发只是业余爱好,仅仅作为平时工作的需要.杂七杂八会一些前后端开发.并非职业码农! 我是一 ...

  3. Luogu P1073 最优贸易【最短路/建反图】 By cellur925

    题目传送门 这么经典的题目,还是看了lyd的题解....唉难过. 一句话题意:在一张点有全都的图上找一条从1到n的路径,存在两个点p,q(p<q),使val[q]-val[p]最大. 给出的图是 ...

  4. python爬虫爬取腾讯招聘信息 (静态爬虫)

    环境: windows7,python3.4 代码:(亲测可正常执行) import requests from bs4 import BeautifulSoup from math import c ...

  5. [UOJ311]积劳成疾

    题解 dp 似乎这个最大值不好设计状态啊== 但是可以发现这\(n\)个点每个点都是相同的 可以设计状态\(f_{i,j}\)表示一个长度为\(i\)的一段区间的最大值不会超过\(j\)的价值 那么转 ...

  6. ural1076 Trash 垃圾

    Description You were just hired as CEO of the local junkyard.One of your jobs is dealing with the in ...

  7. Zznu 1913: yifan and matrix (多路归并)

    题目链接: 1913: yifan and matrix 题目描述: 有一个n*n的矩阵,在每一行取出一个数,可以得到n个数的和,问前n小的和分别是多少? 解题思路: 对于两个数组a[n],b[n], ...

  8. overlaps the location of another project Zendstudio导入已经存在的目录

    转 http://blog.csdn.net/kdchxue/article/details/50633745 最近弄zendstuido导入已经存在的项目,找了很多地方终于找到了导入的方法,特别记录 ...

  9. 常用linux命令大全 转载自:https://www.cnblogs.com/laov/p/3541414.html(大牛笔记)

    Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debian 安装VMware或VirtualBox虚拟机.具体安 ...

  10. 掌握Spark机器学习库-07-回归分析概述

    1)回归与分类算法的区别 回归的预测结果是连续的,分类的预测结果是离散的. 2)spark实现的回归算法有: 3)通过相关系数衡量线性关系的程度