首页 > 编程语言 >【Python基础】list(列表)

【Python基础】list(列表)

时间:2023-09-10 22:55:08浏览次数:57  
标签:index Python list 元素 list1 列表 print

list作为Python中最常用的数据结构之一,与其他编程语言的数组有相似的特点,但是它具有着更为强大的功能,接下来将详细地为大家介绍一下list的所有操作。

(注:tuple元组类型与list类似,但是tuple的元素不能修改;set集合与list也类似,但是集合中的元素是无序的,且会自动除去重复元素)

1. list列表的创建

创建一个列表(不赋初值):

a = []
a = list()

创建一个列表,并对其赋初值
a = [1,2,3]
列表更高级的创建方法——用表达式创建
a = [i for i in range(1, 11)]
创建一个元素分别为1,2,...10的列表
a = [i for i in range(1, 11) if i % 2 == 0]
创建一个1-10,且元素为偶数的列表
用list()函数将其他(可迭代)数据转换为列表
list('ab c') #列表为['a', 'b', ' ', 'c']

2. list列表的常用操作

2.1 列表的索引

直接用中括号[ ]索引其下标即可,或用for循环遍历所有的值
注意,当下标为负数时则代表从后往前所以(或理解为长度+负下标),即-1代表最后一个元素,-2代表倒数第2个元素

a = [1,2,3]
print(a[1])     #输出2,因为一个list列表的下标从0开始,按照0, 1, 2,...的顺序排列
print(a[-1])    #输出3
for i in a:
    print(i) #输出1 2 3
  • 注意,字典dict中可以用.keys()和.values()分别遍历dict的键和值
  • 字典dict中.get()函数可以返回指定键的值,相比于dict[“key”]访问的好处是如果字典中没有指定的key则返回None,而不会直接报错
a = {"one":1, "two":2}
for i in a.values():
    print(i) #输出1 2
a.get(key, default) #default_value不设置的话默认为None,设置的话即如果找不到则返回default设定的值

2.2 列表的分片操作(slice)

  • 用[左边界下标:右边界下标:步长]截取list中特定的一段,注意是左闭右开的区间,即包含左边界,但是不包含右边界

  • 其中:步长可以省略,默认为1。步长即每次截取一个元素,到下一次截取元素距离几个元素(默认为1,即紧挨着截取)

  • 特别注意,冒号:的左右两侧都可以不写,其中左侧默认为0,即list第一个数据,右侧默认为数据个数+1,即list的最后一个数据

  • 左边界和右边界也可以超出list的范围,最长只能截取到list的范围内

  • 一般情况下,左边界<=右边界。若左边界>右边界,则要设置步长为负数,否则输出为空(此情况也就是从右向左截取)

a = [1,2,3,4,5]
print(a[1:3])     #输出[2,3]
print(a[:4])      #输出[1,2,3,4]
print(a[2:])      #输出[3,4,5]
print(a[2:10]     #输出[3,4,5]
print(a[0:3:2])      #输出[1,3]
print(a[2:0:-1])     #输出[3,2]

2.3 列表删除元素

  • 用del函数删除列表指定位置的元素
    del(list1[index]) #删除list1中index位置的元素(index也可以表示一个范围,如[1, 3])
  • 用pop函数剔除队尾元素,并将其返回
    a = list1.pop(index) #将list1中index位置元素剔除并赋值给a,默认删除最后一个元素
  • 用remove函数删除列表中值为指定值的元素
    list1.remove(value) #删除list中值为value的元素
  • 用clear函数彻底清空列表全部内容
    list1.clear() #清空list1的全部内容
  • 用分片赋值空列表的办法删除元素
    list1 = [1, 2, 3, 4, 5] list1[2:] = [] list1 # 输出[1, 2]
  • 注意:集合中只有remove和discard,其中discard删除不存在的元素不会报错,但是remove与list中一样,会报错

2.4 列表的拼接

可以简单的用 + 将两个列表连接起来

a = [1, 2]
b = [3]
c = a + b
那么c = [1, 2, 3]
  • 用extend函数拼接两个列表
list1.extend(list2) #在list1后面接上list2

2.5 列表的重复

  • 可以将一个列表直接乘一个数字n获得n倍重复后的列表,相当于n个这样的列表连接起来
a = [0]
b = a * 5
那么b = [0, 0, 0, 0, 0]

2.6 元素成员判断(判断一个元素是否存在一个列表中)

a = [1, 2, 3, 4, 5]
b = 2
print(b in a)
# 输出True

print(b not in a)
# 输出False
  • 若in前面的元素在列表中则运算值为真;否则为假 not in与in刚好相反

2.7 求列表的长度

len([1, 2, 3]) #列表的长度为3

2.8 求列表的最大、最小值

max([1, 2, 3]) #最大值为3

2.9 在列表中插入元素

  • append函数在队尾插入元素
    list1.append(5) #在list1的最后插入元素5
  • insert函数在任意位置插入元素
    list1.insert(index, data) #在指定位置(index处)插入元素data
  • extend()函数在尾部扩展一个新列表
list1 = [1]
list1.extend([2, 3])  # list1为[1, 2, 3]
  • 注意,集合set中没有append和insert,取代的是add()
    set1.add(2) #向集合中加入元素2

2.10 反转一个列表

list1.reverse() #翻转整个列表,即第一个与最后一个互换,第二个与倒数第二个互换....

2.11 计算列表中指定元素x的个数

times = list.count(x)

2.12 查找列表中指定元素的位置

  • 语法:index(X) 查找list中元素X的位置(若重复出现,则以第一次出现的为准)
a = [1, 2, 3, 4, 5] 
a.index(2) #结果为1
2.13 (浅)复制一个list
list2 = list1.copy() #将list1的内容复制给list2
  • 注意这里与list2 = list1是有区别的,python中列表的直接赋值是一个传址操作,即改变list2的值也会同时影响list1的值

  • 但是copy函数进行的是一个传值操作,即改变list2的值对list1无影响

  • 浅复制的意思是若列表中嵌套一个列表,则对内部的列表仍然是传址复制
    2.14 列表的排序:sort方法与sorted()函数
    1、sort方法
    参数:

  • key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。(https://www.runoob.com/python/att-list-sort.html)

  • reverse:是否降序(True为降序,不指定该参数为升序)

list1 = [(1,6),(3,4),(2,5)]
list1.sort(key=lambda x:x[1], reverse=True)  # 根据第二个元素,降序排列
# 输出:[(1, 6), (2, 5), (3, 4)]

2、sorted()函数:

  • 与sort方法功能类似,但是sorted()函数有返回值,返回的是排序后的结果。

标签:index,Python,list,元素,list1,列表,print
From: https://www.cnblogs.com/fuchangjiang/p/17692223.html

相关文章

  • Python---0基础学习笔记(一)提供pycharm激活码
    Python语言和开发环境Python下载官网https://www.jetbrains.com/pycharm/download/?section=windows激活码⬇⬇⬇MXMQUYT815-eyJsaWNlbnNlSWQiOiJNWE1RVVlUODE1IiwibGljZW5zZWVOYW1lIjoiSHVuYW4gSW5zdGl0dXRlIG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kiLCJhc3NpZ25lZU5hbWUiOiJqaWtlIGNv......
  • Python学习笔记-Python循环语句
    while循环的基础语法while语法格式while条件:条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3…(省略)…只要满足条件,会无限循环执行。示例:小美心软,只要表白100次,就会成功。print("小美,我喜欢你")print("小美,我喜欢你")print("小美,我喜欢你")…(还有97次......
  • Python 潮流周刊第 19 期摘要
    原文全文:https://pythoncat.top/posts/2023-09-09-weekly......
  • ⑧初识python--python的列表推导式
    python的列表推导式1、什么是推导式推导式comprehensions(又称为解析式),是python的一个独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规划的列表或控制一个有规律列表的结构体。共有三种推导式:列表推导式,集合推导式,字典推导式。2、为什么需要推导式列表推......
  • python学习笔记-redis缓存数据库
    一、缓存数据库介绍NoSQL(notonlysql)redis是业界主流的Key-valuenosql数据库之一,和memcached类似redis优点:速度快,每秒可执行大约110000设置操作,81000个/每秒的读取操作支持丰富的数据类型,列表,结合,可排序集合,哈希等操作是原子的二、redis操作安装redisubuntu安装$......
  • ⑦初识python--python数据容器的公共方法
    数据容器的公共方法数据序列的公共方法运算符描述支持容器类型+合并、拼接字符串、列表、元组*复制字符串、列表、元组in判断元素是否存在容器中字符串、列表、元组、字典、集合max()返回容器中的最大值列表、元组、集合min()返回容器中的最小值......
  • 深入浅出理解数据分析系列之:Python安装Excel文档库openpyxl和Pycharm为项目安装Excel
    深入浅出理解数据分析系列之:Python安装Excel文档库openpyxl和Pycharm为项目安装Excel文档库openpyxl一、Python安装openpyxl二、Pycharm为项目安装openpyxl一、Python安装openpyxlpip3installopenpyxlCollectingopenpyxlDownloadingopenpyxl-3.0.9-py2.py3-none-any.whl......
  • Python系列之:argparse和vars
    Python系列之:argparse和vars一、argparse用法示例二、add_argument()方法常用参数详解三、vars用法示例一、argparse用法示例argparse是Python模块,主要用于命令行选项、参数和子命令解析器。vars是Python模块,主要用于返回对象object的属性和属性值的字典对象第一步:创建解析器Arg......
  • 使用Python和Django构建Web应用程序
    Django简介Django是一个强大的PythonWeb框架,用于构建高效且可维护的Web应用程序。它提供了许多工具和库,用于处理常见的Web开发任务,如数据库管理、用户认证和URL路由。以下是一些Django的关键特点:ORM(对象关系映射):Django的ORM允许你使用Python代码来定义和查询数据库模型,而无需编写S......
  • 使用Python和Flask构建RESTful API
    Flask简介Flask是一个轻量级的PythonWeb框架,用于构建Web应用程序和RESTfulAPI。它是一个微型框架,具有灵活性和可扩展性,使开发变得简单和快速。Flask提供了一组核心工具,允许你构建Web应用程序的不同组件。以下是一些关键Flask特点:轻量级:Flask的核心库非常小巧,但可以轻松扩展功能。......