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. scrollbar样式设置

    转载:https://segmentfault.com/a/1190000012800450?utm_source=tag-newest author:specialCoder 一 前言 在CSS 中 ...

  2. 基于.NET平台的Ocelot网关框架教程汇总

    Ocelot 框架是基于.NET 开发的 API 网关,API网关是系统内部服务暴露在外部的一个访问入口,类似于代理服务器,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导等工作,我们可以形 ...

  3. const命令

    一.基本用法 声明一个只读的常量,这个值不会变. const声明常量与let一样,不可重复声明. 二.本质(我困惑的地方) const实际上保证的并不是变量的值不可以改动,而是变量指向的内存地址不可改 ...

  4. spring cloud配置注册中心显示服务的ip地址和端口

    1.在springcloud中服务的 Instance ID 默认值是: ${spring.cloud.client.hostname}:${spring.application.name}:${sp ...

  5. PowerBi利用Python Script绕过ODBC来导入MongoDB数据

  6. Luogu4491 [HAOI2018]染色 【容斥原理】【NTT】

    题目分析: 一开始以为是直接用指数型生成函数,后来发现复杂度不对,想了一下容斥的方法. 对于有$i$种颜色恰好出现$s$次的情况,利用容斥原理得到方案数为 $$\binom{m}{i}\frac{P_ ...

  7. Java 获取当前线程、进程、服务器ip

    /** * 获取当前线程id */ private Long getThreadId() { try { return Thread.currentThread().getId(); } catch ...

  8. 【C++】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用

    GSL 是 GNU 开发并维护的科学计算的库,其中包括: 复数 多项式的根 特殊函数 向量和矩阵 排列 排序 BLAS支持 线性代数 Eigensystems 快速傅立叶变换 正交 随机数 准随机序列 ...

  9. 【简】题解 AWSL090429 【噪音】

    因为每次加上一头奶牛 是什么不重要 牛棚之间贡献除清空操作外无影响 就只要考虑 每个牛棚清空分x次 的贡献 x之和为k       求贡献和最小 一个牛棚清空x次 显然平均清空贡献最小 再用等差数列的 ...

  10. Python中布尔值是False的所有值

    在python中以下都是False:为0的,空集合,空字符串,空值None >>> bool(0) False >>> bool(-0) False >> ...