学习Python的列表类型需要了解和掌握什么是列表、列表的可变性、列表的访问、列表的增删改查等操作~

1.了解列表


list1 = ['abc', 123, {1, 2, 3},[2,3]]
  • Python中的列表有点类似与C语言中的数组的概念;
  • python中的列表是可变的,且列表内部由元素组成,元素可以是任意对象,也就是说列表的数据项不需要具有相同的类型,比如整形、浮点型、字符串、其他类的对象、实例等都可以作为列表的元素。

2.列表的定义

下面是4种定义列表的方法:


lst = list() #定义一个空列表 lst = [] #定义一个空列表 lst = [1,2,3.5,'abc'] #元素可以是任意数据类型 lst = list(range(10)) #定义一个从0到9的列表

3.列表的可变性


a = 1
print(id(a)) #输出:262330544
a = 2
print(id(a)) #输出:262330560
  • 列表的可变与不可变性,是对内存地址而言的;
  • 被初始化的列表,可以通过列表的API接口对列表的元素进行增删改查;

4.列表的访问

列表是有序集合,所以列表可以通过索引访问


lst = [1,2,3,4,5] #初始化一个列表lst
  • 通过索引访问列表里面的值,列表名[索引大小](索引是从0开始计算的);

print(lst[1]) #输出2
  • 通过index方法获取值对应的索引,列表名.index(值);

print(lst.index(4)) #输出 3
  • 通过count方法获取值在列表中出现的次数,列表名.count(值);

print(lst.count(2)) #输出1
  • 通过len()函数获取列表的长度,len(列表名);

print(len(lst)) #输出5



#### **5.列表的插入**

lst = [1,2,3,4,5] #初始化一个列表



*   **append方法**:在列表的末尾插入数据;

lst.append(5)
print(lst) 输出[1, 2, 3, 4, 5, 5]



*   **insert方法**:在列表的任意位置插入数据;

lst.insert(0, 100)
print(lst) 输出[100, 1, 2, 3, 4, 5]



*   **extend方法**:添加可迭代对象的元素;

lst.extend(range(10))
print(lst) 输出[1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



*   `+`:叠加两个列表元素;

lst_new = lst + [1,2,3]
print(lst_new) 输出 [1, 2, 3, 4, 5, 1, 2, 3]



*   `*`:复制列表元素;

lst_new = lst * 3
print(lst_new) 输出 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]



#### **6.列表的删除**

lst = [1,2,3,4,5] #初始化一个列表



*   **remove方法**:移除从左自右的第一个匹配的元素;

lst.remove(3)
print(lst) 输出[1, 2, 4, 5]



*   **pop方法**:带值的情况下,移除指定索引的元素,在不带值的情况下,移除最后一个元素;

lst.pop(2)
print(lst) 输出[1, 2, 4, 5]

lst.pop()
print(lst) 输出[1, 2, 3, 4]



*   **clear方法**:清空整个列表;

lst.clear()
print(lst) 输出[]



#### **7.列表的排序**

lst = [1,2,3,4,5] #初始化一个列表



*   **reverse方法**:将列表中的元素反向;

lst.reverse()
print(lst) 输出[5, 4, 3, 2, 1]


* **sort方法**:给元素排序,(注:reverse控制指定是正向还是反向,默认是False,代表升序);

lst.sort()
print(lst) 输出[1, 2, 3, 4, 5]

lst.sort(reverse=True)
print(lst) 输出[5, 4, 3, 2, 1]



*   **in 关键字**:判断元素是否在列表里面;

if 1 in lst:


print('yes') 输出yes


#### **8.列表的复制**

lst = [1,[1,2,3],3,4,5]

lst_new = lst.copy()
print(lst_new) #输出[1, [1, 2, 3], 3, 4, 5]

lst1 = 100
print(lst_new) #输出[1, [1, 100, 3], 3, 4, 5]



*   **浅拷贝**:如果改变原始列表的值,copy得到的新的列表的值会跟着改变;

import copy #导入一个copy模块
lst = [1,[1,2,3],3,4,5]

lst_new = copy.deepcopy(lst)
print(lst_new) #输出[1, [1, 2, 3], 3, 4, 5]

lst1 = 100
print(lst_new) #输出[1, [1, 2, 3], 3, 4, 5]



*   **深拷贝**:注意需要导入一个copy模块,深拷贝和前拷贝相反,如果改变原始列表的值,copy得到的新的列表的值并不会跟着改变;

#### **9.random模块**

import random #导入random模块
print(random.randint(1,100)) #输出1到99中任意一个整数
print(random.choice(['x',3,5,7])) #输出这四个元素中的任意一个
print(random.randrange(1,100,2)) #输出1到99中的任意一个属于 2n+1 的值

lst = [1,2,3,4,5]
random.shuffle(lst) #将lst列表打乱
print(lst)


* 需要导入一个**random模块**; * **randint**:取区间中任意一个值,注意区间是闭区间; * **choice**:从给出列表中随机取一个值; * **randrange**:左边是闭区间,右边是开区间; * **shuffle**:将列表打乱;

来源:https://segmentfault.com/a/1190000018207773

Python基本数据类型之列表的更多相关文章

  1. Python特色数据类型(列表)(上)

    Python从零开始系列连载(9)——Python特色数据类型(列表)(上) 原创 2017-10-07 王大伟 Python爱好者社区 列表 列表,可以是这样的: 分享了一波我的网易云音乐列表 今天 ...

  2. python基本数据类型之列表和元组

    python基本数据类型之列表与元组 python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且同一个 ...

  3. Python的数据类型2列表

    Python的数值类型List,也就是列表 Python的列表比较类似与其他语言的数组概念,但他又与其他语言数组的概念有很大的不同 C语言.Java的数组定义是这样的,存储多个同类型的数值的集合就叫数 ...

  4. Python - 基础数据类型 list 列表

    什么是列表 列表是一个有序的序列 列表中所有的元素放在 [ ] 中间,并用逗号分开 一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同 特征 占用空间小,浪费内存空间少 声明列表变量 列 ...

  5. Python基础数据类型之列表和元组

    一.列表   list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...

  6. python基础数据类型--list列表

    列表: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex ...

  7. python 基础数据类型 之 列表

    列表:定义 和特性 列表定义和创建: 定义:[,]内以逗号分隔,按照索引,存放各种数据类型,一般没有限制,每个位置代表一个元素 range_create = list(range(0, 10))pri ...

  8. python基础数据类型之列表,元组操作

    一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...

  9. python的数据类型之列表list

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现.例如: stus = ["zhangsan","lisi","wangwu ...

随机推荐

  1. 【BZOJ3211】花神游历各国 并查集+树状数组

    [BZOJ3211]花神游历各国 Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 41 100 5 551 1 22 1 ...

  2. 关东升的《从零开始学Swift》3月9日已经上架

    大家一直期盼的<从零开始学Swift>于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发.全 ...

  3. MyBatis笔记——EhCache二级缓存

    介绍 ehcache是一个分布式缓存框架. 我们系统为了提高系统并发,性能.一般对系统进行分布式部署(集群部署方式)  不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发.所以要使用分布式缓 ...

  4. 160301、js倒计时,页面上显示时间

    js: //倒计时 var countdown=60,t; function settime(){ if (countdown == 0) { $("#validateBtn"). ...

  5. Requset和Response中的乱码问题

    在我们的日常开发中,乱码问题,还是比较经常遇到的,有时候是浏览器端提交的数据到后台乱码了,有时候是后台响应的数据到前台浏览器端展现出现乱码了.下面我们将通过几个简单的例子来说明乱码的由来和解决方式. ...

  6. Microsoft Excel 标题栏或首行锁定

    Microsoft Excel 标题栏或首行锁定 在进行Excel编辑的时候,希望在浏览的时候,第一行或者第一列能够始终显示. 需要做的是:在Excel中选择 "视图"->& ...

  7. spring boot 系列学习记录

    ——初始篇 结束了短学期的课程,初步学习了ssm框架,凭借这些学到的知识完成了短学期的任务-----点餐系统. 通过学长了解到了spring boot ,自己对spring cloud有所耳闻,但是s ...

  8. 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程

    1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...

  9. beego

    https://www.kancloud.cn/hello123/beego/126087

  10. MapReduce分布式编程框架

    一.MapReduce分布式编程框架及yarn集群搭建 1.大数据解决的问题? 海量数据的存储:hadoop->分布式文件系统HDFS 海量数据的计算:hadoop->分布式计算框架Map ...