2.3 列表

2.3.1 列表的创建方法

--- 使用方括号 [] ,括号中的元素之间使用逗号隔开。

 >>> [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
>>> lis = ['H', 'e', 'l', 'l', 'o']
>>> lis
['H', 'e', 'l', 'l', 'o']
>>>

--- 使用函数list创建列表,可将任何序列作为list的参数。

 >>> list('Hello worl!')
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', '!']
>>> lis = list("Hello world!")
>>> lis
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
>>> lis = list(['H', 'e', 'l', 'l', 'o'])
>>> lis
['H', 'e', 'l', 'l', 'o']
>>>

2.3.2 列表操作

--- 可对列表执行序列的通用操作,如索引,切片,拼接,复制。

--- 修改列表,通过索引指定要修改位置的元素,可修改为相似的元素,也可修改为不一致的元素。

 >>> lis = list("Hello world!")
>>> lis
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
>>> lis[1] = 'a'
>>> lis
['H', 'a', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
>>> lis[1] = ['a', 'b', 'c']
>>> lis
['H', ['a', 'b', 'c'], 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
>>>

--- del 删除列表中的元素,也可删除整个列表。

 >>> lis = [1, 2, 3, 4, 5]
>>> lis
[1, 2, 3, 4, 5]
>>> del lis[1]
>>> lis
[1, 3, 4, 5]
>>> del lis
>>> lis
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'lis' is not defined
>>>

--- 给切片赋值,可同时给多个元素赋值,也可将切片替换为长度不同的序列,也可不改变原列表的元素而插入新元素。

 >>> lis = list("Hello world!")
>>> lis
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
>>> lis[-6:-1] = list("python")
>>> lis
['H', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n', '!']
>>> lis = list("Hello")
>>> lis[2:2] = list('abc')
>>> lis
['H', 'e', 'a', 'b', 'c', 'l', 'l', 'o']
>>>

--- 多重赋值,接收赋值的变量的数量必须和列表的长度严格相等。

 >>> lis = [1, 2, 3]
>>> a,b,c = lis
>>> a
1
>>> b
2
>>> c
3
>>> a,b = lis
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
>>>

2.3.3 列表的方法

--- append,就地修改列表,将一个对象附加到列表末尾。(列表专属方法)

 >>> lis = [1, 2, 3]
>>> lis.append(4)
>>> lis
[1, 2, 3, 4]
>>> lis = [1, 2, 3]
>>> lis.append([4, 5])
>>> lis
[1, 2, 3, [4, 5]]
>>>

--- insert,将一个对象插入列表,insert带有两个参数,第一个表示插入位置的索引,第二个表示要插入的对象。(列表专属方法)

 >>> lis = [1, 2, 3]
>>> lis.insert(1,5)
>>> lis
[1, 5, 2, 3]
>>> lis = [1, 2, 3]
>>> lis.insert(1,[4, 5])
>>> lis
[1, [4, 5], 2, 3]
>>>

--- clear,清空列表中的元素,使其成为空列表。

 >>> lis = [1, 2, 3]
>>> lis.clear()
>>> lis
[]
>>>

--- copy,使用常规的‘=’号赋值方式来复制,只是起到关联内存位置的作用,copy则是拷贝了一个副本到新的内存位置。

 >>> lis_1 = [1, 2, 3]
>>> lis_2 = lis_1
>>> id(lis_1)
140151340507336
>>> id(lis_2)
140151340507336
>>> lis_2[0] = 5
>>> lis_2
[5, 2, 3]
>>> lis_1
[5, 2, 3]
>>>
 >>> lis_1 = [1, 2, 3]
>>> lis_2 = lis_1.copy()
>>> id(lis_1)
140151340498312
>>> id(lis_2)
140151340507208
>>> lis_2[0] = 5
>>> lis_2
[5, 2, 3]
>>> lis_1
[1, 2, 3]
>>>

--- extend,同时将多个值附加到列表末尾。常规通过“+”运算符拼接两个列表,新的结果放到新的内存地址空间。而extend则在原内存地址空间把值附加进去。

 >>> lis_1 = [1 ,2]
>>> lis_2 = [3 ,4]
>>> lis_1 + lis_2
[1, 2, 3, 4]
>>> lis_1
[1, 2]
>>> lis_1 = [1 ,2]
>>> lis_2 = [3 ,4]
>>> lis_1.extend(lis_2)
>>> lis_1
[1, 2, 3, 4]
>>>

--- count,计算指定元素在列表中存在的次数。

 >>> lis = list('Hello world!')
>>> lis.count('e')
1
>>> lis.count('l')
3
>>> lis.count('o')
2
>>>

--- index,在列表中查找指定值第一次出现的位置的索引。

 >>> lis = [1, 2, 3, 1, 2, 1]
>>> lis.index(2)
1
>>> lis.index(1)
0
>>>

--- remove,删除指定值在列表中第一次出现的元素。

 >>> lis = [1, 2, 3, 1, 2, 1]
>>> lis.remove(2)
>>> lis
[1, 3, 1, 2, 1]
>>>

--- pop,删除指定索引位置的一个元素,并把删除元素返回(默认则删除列表末尾一个元素)。

 >>> lis = [1, 2, 3, 4, 5]
>>> lis.pop(2)
3
>>> lis
[1, 2, 4, 5]
>>> lis.pop()
5
>>> lis
[1, 2, 4]
>>>

--- reverse,按相反的顺序排列列表中的元素。

 >>> lis = [1, 2, 3]
>>> lis.reverse()
>>> lis
[3, 2, 1]
>>>

--- sort,对列表就地排序,按ASCII码表顺序,且列表中元素必须是同类型数据。

 >>> lis = ['a', 'A', 'z', 'Z']
>>> lis.sort()
>>> lis
['A', 'Z', 'a', 'z']
>>> lis = [1, 2, 'a', 'A']
>>> lis.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'
>>>

2.3.4 列表可用于循环

 >>> for i in [1, 2, 3, 4]:
... print(i*2)
...
2
4
6
8
>>>
 >>> lis = [1, 2, 3, 4, 5]
>>> for i in range(len(lis)):
... print("lis[" + str(i) + "]:" + str(lis[i]))
...
lis[0]:1
lis[1]:2
lis[2]:3
lis[3]:4
lis[4]:5
>>>

2.4 元组

--- 与列表一样,元组也是序列,唯一的差别是元组不能修改。

--- 元组的创建,使用逗号分隔,使用圆括号括起。(逗号很重要)

 >>> (1, 2, 3)
(1, 2, 3)
>>> (1)
1
>>> (1,)
(1,)
>>> type((1))
<class 'int'>
>>> type((1,))
<class 'tuple'>
>>> 3 * (40 + 2)
126
>>> 3 * (40 + 2,)
(42, 42, 42)
>>>

--- 元组的创建,使用函数tuple,将一个序列作为参数,并将其转换为元组。如果参数已经是元组,则原样返回。

 >>> tuple([1, 2, 3])
(1, 2, 3)
>>> tuple("Hello world!")
('H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!')
>>> tuple((1, 2, 3, 4, 5))
(1, 2, 3, 4, 5)
>>>

Lesson 2-2(列表,元组)的更多相关文章

  1. Python学习笔记(1):列表元组结构

    Python的列表元组功能强大,令人印象深刻.一是非常灵活,二是便于集体操作.特别是以元组作为列表项的结构,和数据访问的结果能够对应起来,和习惯的二维表理解上也一致,有很多的用途. 以学习笔记(3)中 ...

  2. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  3. python列表元组

    python列表元组 索引 切片 追加 删除 长度 循环 包含   定义一个列表 my_list = []     my_list = list()   my_list = ['Michael', ' ...

  4. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  5. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  6. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  7. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  8. Python摸爬滚打之day04----基本数据类型(列表,元组)

    1.列表 列表是可变的, 有序的数据类型,列表是按照添加顺序来保存的,可以存放各种数据类型. 1.1    列表的切片(同字符串) 1.2    列表的增删改查 注意: 列表是可以直接在列表上面进行操 ...

  9. python基础知识-04-字符串列表元组

    python其他知识目录 内存,cpu,硬盘,解释器 实时翻译 编译器 :一次性翻译python2,3 除法,2不能得小数,3能得小数 1.字符串操作 1.1字符串操作startswith start ...

  10. 巨蟒python全栈开发-第4天 列表&元组&range

    今日内容大纲 1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操 ...

随机推荐

  1. Element类型和HTML元素获取

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. JDK 新特性

    Jdk8新特性 一:接口默认方法和静态方法: 我们可以在接口中定义默认方法,使用default关键字,并提供默认的实现.所有实现这个接口的类都会接受默认方法的实现,除非子类提供的自己的实现. 我们还可 ...

  3. confluence6.x安装

    一 简介 confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它可以实现团队成员之间的协作和知识共享. 网上有关confluence的教程比较多,在此我们以confl ...

  4. luogu P1723 高手过愚人节

    打算下周讲课就讲Manacher了 所以百度了一下相关题目,发现了一道千古好题 这道题没想到是一道模板题,模板中的模板 简要说一下思路,我们先复制一遍模板(甚至变量都不用改 然后唯一的区别就是要求的是 ...

  5. 使用logstash同步MySQL数据到ES

    使用logstash同步MySQL数据到ES 版权声明:[分享也是一种提高]个人转载请在正文开头明显位置注明出处,未经作者同意禁止企业/组织转载,禁止私自更改原文,禁止用于商业目的. https:// ...

  6. 第八周博客作业<西北师范大学|李晓婷>

    1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.作业要求链接:http://www.cnblogs.com/nwnu-daizh/p/10687492.html ...

  7. 如何解决Java警告信息:"objc[31336]: Class JavaLaunchHelper is implemented in both places ..."

    在macOS High Sierra Version 10.13.6下使用Intellij在Java 8上执行Java程序,console中会打印如下警告信息: objc[31336]: Class ...

  8. GIL全局锁测试

    基础知识:https://www.cnblogs.com/SuKiWX/p/8804974.html 测试环境 python3.7默认解释器(cpython) cpu为四核 测试代码 #! /usr/ ...

  9. 原生JS实现banner图的滚动与跳转

    HTML部分: <div id="banner"> <!--4张滚动的图片--> <div id="inside"> < ...

  10. UE4命令行使用,解释

    命令行在外部 从命令行运行编辑项目 1 导航到您的[LauncherInstall][VersionNumber]\Engine\Binaries\Win64 目录中. 2 右键单击上 UE4Edit ...