Python基本数据类型之列表
学习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基本数据类型之列表的更多相关文章
- Python特色数据类型(列表)(上)
Python从零开始系列连载(9)——Python特色数据类型(列表)(上) 原创 2017-10-07 王大伟 Python爱好者社区 列表 列表,可以是这样的: 分享了一波我的网易云音乐列表 今天 ...
- python基本数据类型之列表和元组
python基本数据类型之列表与元组 python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且同一个 ...
- Python的数据类型2列表
Python的数值类型List,也就是列表 Python的列表比较类似与其他语言的数组概念,但他又与其他语言数组的概念有很大的不同 C语言.Java的数组定义是这样的,存储多个同类型的数值的集合就叫数 ...
- Python - 基础数据类型 list 列表
什么是列表 列表是一个有序的序列 列表中所有的元素放在 [ ] 中间,并用逗号分开 一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同 特征 占用空间小,浪费内存空间少 声明列表变量 列 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
- python基础数据类型--list列表
列表: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex ...
- python 基础数据类型 之 列表
列表:定义 和特性 列表定义和创建: 定义:[,]内以逗号分隔,按照索引,存放各种数据类型,一般没有限制,每个位置代表一个元素 range_create = list(range(0, 10))pri ...
- python基础数据类型之列表,元组操作
一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...
- python的数据类型之列表list
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现.例如: stus = ["zhangsan","lisi","wangwu ...
随机推荐
- Django学习笔记第十篇--实战练习六--发送邮件
一.发送邮件需要引入的包依赖文件(Django1.8 Python2.7) from django.core.mail import send_mail,send_mass_mail 其中send_m ...
- [算法][LeetCode]Single Number——异或运算的巧妙运用
题目要求 Given an array of integers, every element appears twice except for one. Find that single one. N ...
- 160525、高并发之mysql主从复制(linux)
第一步:新建两台linux主机(我这里是使用虚拟机,linux版本是CentOS-6.3-x86_64-bin-DVD1.iso,注意:我下载的是dvd1,如果其他版本默认安装可能会自动还原) 第二步 ...
- hibernate的.hbm.xml文件文件配置属性详解
一般.hbm.xml文件如下面: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "- ...
- Python全栈day20(装饰器基本理论)
一,什么是装饰器 装饰器:本质就是函数,功能是为其他函数添加附加功能 原则 1,不修改被修饰函数的源代码 2,不修改被修饰函数的调用方式 举例说明:有一个求和函数要求就算出函数的运行时间 正常代码应该 ...
- snappy性能测试之安装运行
项目地址:https://code.google.com/p/snappy/ 下载后,解压. $./configure $make 建立一个简单的测试文件a.cpp: #include "s ...
- Exchange NLB 单播和多播模式比较
一般来说,在NLB的创建时,单网卡多播,双网卡单播. 双网卡单播时,因为主机之间不能互相通信,将设置内网通讯的网卡,也就是群集设置中的心跳. NLB模式 描述 优点 缺点 单播 网卡MAC会被NLB专 ...
- UVA12470—Tribonacci (类似斐波那契,简单题)
题目链接:https://vjudge.net/problem/UVA-12470 题目意思:我们都知道斐波那契数列F[i]=F[i-1]+F[i-2],现在我们要算这样的一个式子T[i]=T[i-1 ...
- 二叉树的先序、中序、后序和中序遍历——Java实现
package treeTraverse; /** * 定义一个树的结点类 */ public class Node { private int data; private Node leftChil ...
- SQL事务回滚 写法(转)
以下是SQL 回滚的语句:方案一:SET XACT_ABORT ON--如果产生错误自动回滚GOBEGIN TRANINSERT INTO A VALUES (4)INSE ...