iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python入门之列表用法详解
  • 844
分享到

Python入门之列表用法详解

2024-04-02 19:04:59 844人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录列表是什么列表的CRUD创建列表访问列表中的值更新列表删除元素拼接列表列表相乘判断遍历列表列表常用方法获取列表长度列表后面添加元素指定位置添加元素删除元素返回的是某个元素在列表里

列表是什么

列表是元素的集合,存储在一个变量中。

列表中存储的元素类型没有限制,根据需要动态分配和回收内存

列表中的每个元素都会分配一个数字用来表示它的位置(索引),第一个索引是 0,第二个索引是 1,依此类推。

列表的数据项不需要具有相同的类型

列表可以存储重复数据

列表的CRUD

创建列表

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

字符串的索引一样,列表索引从 0 开始。列表可以进行截取、组合等。

列表中元素的类型的多样性

a_list=['lemon', 100, ['a', 'b', 'c', 'd'], True]#同一个list的类型可以是字符串,整型,布尔型(true和false),以及嵌套的lis

访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

    list1 = ['physics', 'chemistry', 1997, 2000]
    list2 = [1, 2, 3, 4, 5, 6, 7]
    print("list1[0]: ", list1[0]) # list1[0]:  physics

		# 嵌套列表
    list1 = ['physics', 'chemistry', 1997, 2000,[1,2,3,4,5]]
    print("list1[0]: ", list1[4][0]) # list1[0]:  1
print(a[1:3]) #按下标0开始,不包括最右边的3
print(a[1:]) #1以及之后的全部
print(a[:3]) #3之前的但不包括3
print(a[:]) #所有
print(a[::2])#[start:end:step]start和end为空的时候,默认是全选,step为空时默认是1,这个表示的是从索引为0开始,以步长为2来选择元素
print(a[1:3:2])#以索引为1开始,索引3结束,步长为2来选择元素
print(a[::-1])#当step为-1时,将列表进行了逆序排序
print(a[::-2])#将列表进行了逆序排序,步长为2来选择元素

更新列表

修改列表中的元素需要使用索引表示将指定索引位置的元素进行重新赋值。

    list1 = ['physics', 'chemistry', 1997, 2000]
    list1[0]= 'maths'
    print("list1[0]: ", list1[0]) # list1[0]:  maths

删除元素

移除列表中的元素,可以通过 del 语句,通过索引号指定要删除的元素对象。

    list1 = ['physics', 'chemistry', 1997, 2000]
    del list1[0]
    print("list1[0]: ", list1[0]) # list1[0]:  chemistry

拼接列表

    print('列表相加:', [1, 2, 3] + [4, 5, 6])# 列表相加: [1, 2, 3, 4, 5, 6]

列表相乘

    print('列表相乘:', ['a', 'b']*3) # 列表相乘: ['a', 'b', 'a', 'b', 'a', 'b']

判断

print('判断列表元素是否存在于列表中:', 'a' in ['a', 'b']) # True
print('判断列表元素是否存在于列表中:', 'a' not in['a', 'b']) # Falue

遍历列表

python 迭代列表中元素,主要有三种方式,具体如下:

第一种方法(直接)

    list1 = ['physics', 'chemistry', 1997, 2000]
    for item in list1:
        print(item)

或者

names = ['james', 'michael', 'emma', 'emily']
index = 0    #通过while循环来列出所有元素
while index < len(names):
    print(names[index])
    index += 1

第二种方法range

借助 range 和 len 内置函数,通过元素索引遍历列表元素;

    list1 = ['physics', 'chemistry', 1997, 2000]
    for i in range(len(list1)):
        print(i, list1[i])

第三种方法enumerate

通过内置枚举函数 enumerate 直接获取遍历的索引和元素;

    list1 = ['physics', 'chemistry', 1997, 2000]
    for i, item in enumerate(list1):
        print(i, item)

列表推导式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式,使用列表生成式可以节省很多行代码

语法结构如下:

# 普通的生成式
[表达式 for 变量 in 旧列表]
# 加条件的生成式
[表达式 for 变量 in 旧列表 if 条件]
# if...else条件的生成式
[表达式 if 条件1 else 条件2 for 变量 in 旧列表]

过滤掉名词字母长度不足4的名字,示例代码如下:

names = ["Tom", "Lily", "Jack", "Steven", "Bod"]
# 在不是用列表生成式的过程
news_names = []
for name in names:
    if len(name) > 3:
        news_names.append(name)
print(news_names)  # ['Lily', 'Jack', 'Steven']


# 使用列表生成式
new_names = [name for name in names if len(name) > 3]
print(new_names)  # ['Lily', 'Jack', 'Steven']

将1-100的整数可以被3和5整除的数字组成一个新的列表, 示例代码如下所示:

# 旧方法
number_list = []
for i in range(101):
    if i % 3 == 0 and i % 5 == 0:
        number_list.append(i)
print(number_list)  # [0, 15, 30, 45, 60, 75, 90]
 
 
# 列表生成式
new_num_list = [i for i in range(101) if i % 3 == 0 and i % 5 == 0]
print(new_num_list)  # [0, 15, 30, 45, 60, 75, 90]

将0到10的奇数和0到5的偶数组成一个不重复的列表,示例代码如下所示:

# 将0到10的奇数和0到5的偶数组成一个不重复的列表
# 旧方法
news_number_list = []
for x in range(10):
    if x % 2 != 0:
        for y in range(5):
            if y % 2 == 0:
                news_number_list.append([x, y])
print(news_number_list)
# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]



# 新方法
news_num_list = [[x, y] for x in range(10) if x % 2 != 0 for y in range(6) if y % 2 == 0]
print(news_num_list)
# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]

将列表中的数字大于8000的加200 小于等于8000的加500,示例代码如下:

# 将列表中的数字大于8000的加200 小于等于8000的加500
number = [5000, 10000, 4500, 80000, 12000]
 
# 旧方法
for i in number:
    if i > 8000:
        i += 200
    else:
        i += 500
print(number)  #  [5500, 10200, 5000, 80200, 12200]
 
 
# 新方法
new_number = [i + 200 if i > 8000 else i + 500 for i in number]
print(new_number)  #  [5500, 10200, 5000, 80200, 12200]

列表常用方法

获取列表长度

len() 方法返回列表元素个数。

print(len([1, 2, 3])) # 3

列表后面添加元素

append() 方法用于在列表末尾添加新的对象。

food=['egg', 'fish', 'cake', 'tomato']
food.append('ice') #在list的末尾添加元素
print(food)

指定位置添加元素

insert() 函数用于将指定对象插入列表。

food=['egg', 'fish', 'cake', 'tomato']
food.insert(1, 'meat') #在1这个位置添加元素
print(food)

删除元素

pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

food=['egg', 'fish', 'cake', 'tomato']
food.pop() #删除list末尾的元素
print(food)
food.pop(2) #删除索引2的元素
print(food)

定义 remove() 方法具有指定值的首个元素,如果有重复,删除的是第一次出现的元素,如果元素不存在会报错

list2 = [1, 2, 4, 5, 7, 4]
list2.remove(4)#从列表中找出第一个数值为4的值然后删除,不管第二个
print('remove:', list2)

返回的是某个元素在列表里面的个数

count()方法返回元素出现次数

fruits = ['apple', 'banana', 'cherry']
number = fruits.count("cherry")
print(number)

合并列表

定义 extend()方法将列表元素(或任何可迭代的元素)添加到当前列表的末尾

list1 = [1, 3, 3, 4, 5]
list2 = [6, 5, 8, 9]
list1.extend(list2) #在列表1后面添加列表2
print(list1)

返回的是元素在列表中的第一个位置

定义 index()方法返回该元素最小索引值(找不到元素会报错)

list2 = [1, 2, 4, 5, 7, 4]
print('index:', list2.index(4))  # 从列表中找出第一个数值为4的索引位置,不管第二个

排序

从小到大排序,类型不能混 ,使用的是ASCII值进行排序

list2 = [1, 2, 4, 5, 7, 4]
list2.sort()#对原列表进行排序
print('sort;', list2)

将列表进行翻转

定义reverse() 方法反转元素的排序顺序

fruits = ['apple', 'banana', 'cherry']
fruits.reverse()
print(fruits)

清除列表

定义 clear()方法清空列表所有元素

list2 = [1, 2, 4, 5, 7, 4]
list2.clear()
print(list2)

浅拷贝列表

定义 copy()方法返回指定列表的副本 ,如果某个元素是引用类型那么复制的就是这个元素的地址

fruits = ['apple', 'banana', 'cherry', 'orange']
c = fruits.copy()
print(c

深拷贝列表

使用用deepcopy()方法,才是真正的复制了一个全新的列表,包含原列表内部的引用类型

import copy
old = [1,[1,2,3],3]
new = copy.deepcopy(old)

注意: 使用深浅拷贝需要导入copy模块,因为深拷贝要拷贝的元素跟多,所以速度会远不如浅拷贝,在编程的过程中要注意避免造成多余的系统负担;

到此这篇关于Python入门之列表用法详解的文章就介绍到这了,更多相关Python 列表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python入门之列表用法详解

本文链接: https://www.lsjlt.com/news/120276.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python入门之列表用法详解
    目录列表是什么列表的CRUD创建列表访问列表中的值更新列表删除元素拼接列表列表相乘判断遍历列表列表常用方法获取列表长度列表后面添加元素指定位置添加元素删除元素返回的是某个元素在列表里...
    99+
    2022-11-11
  • Python入门基本操作列表排序用法详解
    目录列表的举例1.访问python列表中的元素2.python列表的切片3.python列表的排序4.Python列表元素的添加5.Python列表元素的删除列表是最常用的Pytho...
    99+
    2022-11-12
  • python基础入门之列表(一)
    目录正文增删改查循环其他的功能函数元组因为最近公司有python项目维护,所以把python的基础入门的书整理一遍,因为有些忘记了,同时在看<<python编程>&...
    99+
    2022-11-12
  • python变量作用域与列表入门详解
    变量作用域 变量由作用范围限制 分类:按照作用域分类 全局(global):在函数外部定义 局部(local):在函数内部定义 变量的作用范围 全局变量:在整个全局...
    99+
    2022-11-11
  • Python入门之基础语法详解
    目录一、我的经历及目标二、Python简介三、Python基础语法3.1行和缩进3.2Python注释3.3Python空行3.4同一行显示多条语句3.5print输出3.6多个语句...
    99+
    2022-11-12
  • python之列表详解
    文章目录 一.创建列表1.基于弱数据类型语言的定义2.通过全局函数list()定义3.创建空列表 二.访问列表的值1.通过下标索引2.通过for循环遍历3.通过while循环遍历 ...
    99+
    2023-10-18
    python 开发语言 后端 列表
  • Python入门之模块和包用法详解
    目录模块1. 导入模块的方式2. 导入方式详解3. 制作模块4. 模块定位顺序5. __all__包1. 制作包2. 导入包总结模块 Python 模块(Module),是一个 Py...
    99+
    2022-11-11
  • python入门之Tkinter使用的方法详解
    目录一、前言1.1、Tkinter是什么二、准备工作2.1、Windows演示环境搭建三、Tkinter创建窗口3.1、创建出一个窗口3.2、给窗口取一个标题3.3、窗口设置3.3、...
    99+
    2022-11-13
  • Android入门之bindService的用法详解
    目录介绍来看例子全代码Service注册Service类(坑来了)主运行类-MainActivity.java运行效果介绍 在前一天我们介绍了Android中有两种启动Service...
    99+
    2022-12-08
    Android bindService用法 Android bindService
  • Python入门之布尔值详解
    目录简介布尔值评估值和变量大多数值都为 True某些值为 False函数可返回布尔简介 Python中布尔值(Booleans)表示以下两个值之一:True或False。 布尔值 在...
    99+
    2023-02-17
    Python 布尔值
  • python列表与列表算法详解
    目录1. 序列类型定义2. 列表的基础知识2.1 列表定义2.2 列表基本操作总结1. 序列类型定义 序列是具有先后关系的一组元素 序列是一维元素向量,元素类型可以不同 ...
    99+
    2022-11-12
  • python列表与列表算法详解(2)
    目录2. 案例【三酷猫冒泡法排序】3. 案例【三酷猫二分法查找】总结1. 案例【三酷猫列表记账】 操作需求: (1)用列表对象记录三酷猫每天钓鱼的种类和数量 (2)统计三酷猫所钓...
    99+
    2022-11-12
  • Python入门之字符串操作详解
    目录字符串字符串常用操作拼接字符串字符串复制计算字符串的长度截取字符串和获取单个字符字符串包含判断常用字符串方法把字符串的第一个字符大写统计字符串出现的次数检查字符串开头检查字符串结...
    99+
    2022-11-11
  • C++入门之vector使用详解
    目录前言创建对象迭代器数据插入数据删除容量操作总结前言 兜兜转转,我们来到了C++的vector章节,今天就讲讲怎么使用vector吧. vector的本质就是一个线性的顺序表,只不...
    99+
    2022-11-12
  • Python基础详解之列表复制
    目录一、前言二、直接赋值三、用切片赋值四、copy()复制实现赋值五、deepcopy()复制实现赋值六、copy()和deepcopy()的区别6.1  copy()6....
    99+
    2022-11-12
  • Python四大金刚之列表详解
    目录前言一、列表的创建:二、 列表的特点:三、查询操作获取列表中多个元素:切片操作四、列表的遍历:五、列表元素的增删改(一)增加append()的内存过程(二)删六、列表生成式总结前...
    99+
    2022-11-12
  • Android入门之Fragment嵌套Fragment的用法详解
    目录从现实需求来看场景Fragment的嵌套fg_content.xmlpet_the_cat.xmlfg_content layout所属的Fragment Java端代码从现实需...
    99+
    2023-02-06
    Android Fragment嵌套Fragment Android Fragment嵌套 Android Fragment
  • C++入门语法之函数重载详解
    目录写在前面1 函数重载的概念2 函数重载原理总结写在前面 关于C语言的编译与链接不懂的可以看一下下面的文章,先回顾一下以前的知识。 详解C语言的编译与链接 1 函数重载的概念 函数...
    99+
    2022-11-13
  • C++入门之list的使用详解
    目录前言构造的使用1 构造空list2 构造含n个值为val的元素3 拷贝构造4 用迭代区间迭代器接口1 正常迭代接口2 逆向迭代接口容量接口元素访问数据修改头插头删尾插尾删pos位...
    99+
    2022-11-12
  • Android入门之Service的使用详解
    目录简介什么是ServiceService的生命周期startService和bindService的区别startService ()时Service的生命周期bindServic...
    99+
    2022-12-08
    Android Service使用 Android Service
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作