python学习之列表的运用

目录
  • 创建列表
  • 常用函数
  • 常用方法
  • 列表推导式
  • 列表推导式的嵌套
  • 字符串的文本解析方法
  • 深浅复制
    • 浅复制
    • 深复制

创建列表

list( ) # 创造列表
list(可迭代对象)  # 将可迭代对象创造成列表

切片索引:列表[a:b]

切片索引赋值:列表[切片] = 可迭代对象

L = [2,3,4]
L[0:1] = [23,34] #把L中的第一个换成[23,34]
print(L) # [23, 34, 3, 4]
L[2:] = [3.3,4.4,5.5] #[23, 34, 3.3, 4.4, 5.5]
print(L)
L[:] = [3, 4]
L[0:0] = [1, 2] #[1, 2, 3, 4]在索引0的前面添加[1,2]
L[:0] = "ABC" #在L的索引0前面迭代添加"ABC"
print(L) # ['A', 'B', 'C', 1, 2, 3, 4]
L = [3, 5]
L[1:1] = [4.1, 4.2] # [3, 4.1, 4.2, 5]在索引1后面添加
L[1:2] = [] # 删除了索引1
L = [1, 2, 3, 4, 5, 6]
L[::-2] = "DEF" #[1, 'F', 3, 'E', 5, 'D']

注意:步长不等于1的切片赋值,可迭代对象一地要和切片切出的片数相等

常用函数

这些函数通用语其他可迭代对象(str、list、tuple、bytes、bytearray)

  • len(x) :返回序列的长度
  • max(x) :返回序列的最大值元素
  • min(x) :返回序列的最小值元素
  • sum(x) :返回序列中所有元素的和(元素必须是数值类型)
  • any(x) :真值测试,如果列表中其中一个值为真值则返回True
  • all(x) :真值测试,如果列表中所有值为真值则返回True

常用方法

  • L.index(v, begin, end):返回对应元素v的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误
  • L.insert(index, obj):将obj元素插放到列表中指定的位置
  • L.count(x):返回列表中元素x的个数
  • L.remove(x):从列表中删除第一次出现在列表中的值,x是指定值不是列表的索引,不同于pop,不返回任何值
  • L2=L.copy():复制此列表(只复制一层,不会复制深层对象), 如果根改变,浅复制的列表也会变,浅复制的列表连着根,深复制的列表自己创造了另一个相同的根
  • L.append(x):向列表中追加单个元素,不可以追加两个元素,但可以追加两个元素的元组
  • L.extend(lst):向列表追加另一个列表
  • L.clear():清空列表,等同于 L[:] = [] 空列表
  • L.sort(reverse=False):将列表中的元素进行排序,默认顺序按值的小到大的顺序排列,对L进行排序,但不返回任何值
  • sorted(L):返回排序后的对象
  • L.reverse():列表的反转,用来改变原列表的先后顺序,这个函数不返回列表,返回的是一个迭代器,可用list将返回的对象转换成列表
  • L.pop(index):删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回的删除元素

列表推导式

列表推导式是用可迭代对象生成列表的表达式

语法: [表达式 for 变量 in 可迭代对象] 或 [表达式 for 变量 in 可迭代对象 if 真值表达式]

说明:for in 表达式的if子句可以省略,省略后将对所有生成的对象进行求值处理

# 生成一个数值为 1 ~ 9 的平方的列表
L = [x**2 for x in range(1, 10)]
print(L) #[1, 4, 9, 16, 25, 36, 49, 64, 81]
L = [x for x in range(1, 10) if x % 2 == 1]
print(L) #[1, 3, 5, 7, 9]

列表推导式的嵌套

#[表达式
for 变量1 in 可迭代对象1 if 真值表达式1
for 变量2 in 可迭代对象2 if 真值表达式2]
L = [x + y for x in "ABC"
for y in "123"]
#['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

字符串的文本解析方法

str.split(sep = None)

将字符串使用sep作为分隔符分割str字符串,当不给参数时用空白字符作为分隔符分割,返回分割后的字符串列表,字符串变列表,只能分割字符串中的空格,split(" ")中只能是空格

str2 = "wo ai ni"
L = str2.split(" ") # ['wo', 'ai', 'ni']
str1 = "wo,ai,ni"
print(str1.split(',')) # ['wo', 'ai', 'ni']
print("www", "baidu", "com") # www baidu com
print("www", "baidu", "com", sep=".") # 设置间隔符 www.baidu.com

str.join(***)

把str字符串插入到​​***​​​的分隔符中,用str代替​​***​​中的分隔符

s = '\\'.join(['C:', 'Programe Files', 'python3'])
print(s) # C:\Programe Files\python3

深浅复制

浅复制

浅复制是复制的对象又指向了根对象,当根对象改变时,原来的和浅复制的对象都会变

L = [3.1, 3.2]
L1 = [1, 2, L]
L2 = L1.copy() # 浅拷贝
L2[2][0] = 3.14
print(L1) # [1, 2, [3.14, 3.2]]
print(L2) # [1, 2, [3.14, 3.2]]

深复制

深复制是重新创建一个根,当原来的根改变时,深复制的根不会改变,所以深复制的值改变,原来的不变

import copy # 导入copy模块,以后再讲导入
L = [3.1, 3.2]
L1 = [1, 2, L]
L2 = copy.deepcopy(L1) # 深拷贝
L2[2][0] = 3.14
print(L1) # [1, 2, [3.1, 3.2]] #<<--此处不变
print(L2) # [1, 2, [3.14, 3.2]]

再创造一个对象

My = [1,2,3]
My1 = My[:]
My.append(5)
My1.append(6)
print(My) # [1, 2, 3, 5]
print(My1) # [1, 2, 3, 6]

共用一个对象

My = [1,2,3]
My1 = My
My.append(5)
My1.append(6)
print(My) # [1, 2, 3, 5, 6]
print(My1) # [1, 2, 3, 5, 6]

注:深拷贝通常只对可变对象进行复制,不可变对象通常不会复制

到此这篇关于python学习之列表的运用的文章就介绍到这了,更多相关python 列表运用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈python for循环的巧妙运用(迭代、列表生成式)

    介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化. 迭代(遍历) #!/usr/bin/env python3 #-*- coding:utf-8 -*- vlist=['a','b','c'] vtuple=('a','b','c') vdict={'a': 1, 'b': 2, 'c': 3} vset={'a','b','c'} vstr='abc' for x in vl

  • Python如何一行输入多个数,并存入列表

    目录 如何一行输入多个数,并存入列表 方法一 方法二 用input()同时输入多个数 1.map( ) 2.split( ) 3.map(function,input(“以空格分开”).split()) 如何一行输入多个数,并存入列表 在python里,如果你仅使用input()的话是输入一行的内容并将该行的内容以字符串的形式存到变量中,但如果你想要在一行输入多个数字的话使用int(input())就没法实现. 注:使用python2版本时可能会报错 相关介绍:Python中列表元素转为数字的方

  • python删除列表中特定元素的几种方法

    目录 前言 思路 方法1 方法2:使用while循环 方法3:for循环倒序删除空字符串 方法4:拷贝原列表 前言 题目如下: 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度.如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指仅由字母组成.不包含任何空格字符的 最大子字符串. 示例: 输入: "Hello World"输出: 5 思路 题目要求给一个字符串s,s仅包含字母和空格字符

  • python列表嵌套引发的问题总结

    目录 1.嵌套列表 2.识别坑点 3.区分两个概念 4.小例子 5.正确代码 总结 1.嵌套列表 Python中有一种内置的数据类型叫列表(list),它是一种容器,可以用来承载其他的对象(准确的说是其他对象的引用),列表中的对象可以称为列表的元素,很明显我们可以把列表作为列表中的元素,这就是所谓的嵌套列表. 嵌套列表可以模拟出现实中的表格.矩阵.2D游戏的地图(如植物大战僵尸的花园).棋盘(如国际象棋.黑白棋)等. 2.识别坑点 在使用嵌套的列表时要小心,否则很可能遭遇非常尴尬的情况,下面是一

  • Python中的字典合并与列表合并技巧

    目录 前言 1 合并字典 2 合并列表 前言 又到了每日分享Python小技巧的时候了,今天给大家分享的是Python中两种常见的数据类型合并方法. 1 合并字典 在某些场景下,我们需要对两个(多个)字典进行合并.例如需要将如下两个字典进行合并: dict1 = {"a": 2, "b": 3, "c": 5} dict2 = {"a": 1, "c": 3, "d": 8} 且合并后的

  • Python学习之列表常用方法总结

    目录 列表(元组)基本操作符回顾 len()函数在列表与元组上的使用 列表(元组)之间的累加与乘法 in和notin在列表(元组)中的用法 列表常用方法 append()函数 insert()函数 count()函数 remove()函数 Python内置函数del reverse()函数 sort()函数 clear()函数 copy()函数 extend()函数 小练习:完成列表合并功能 列表(元组)基本操作符回顾 len()函数在列表与元组上的使用 示例如下: names = ['Neo'

  • python学习之列表的运用

    目录 创建列表 常用函数 常用方法 列表推导式 列表推导式的嵌套 字符串的文本解析方法 深浅复制 浅复制 深复制 创建列表 list( ) # 创造列表 list(可迭代对象) # 将可迭代对象创造成列表 切片索引:列表[a:b] 切片索引赋值:列表[切片] = 可迭代对象 L = [2,3,4] L[0:1] = [23,34] #把L中的第一个换成[23,34] print(L) # [23, 34, 3, 4] L[2:] = [3.3,4.4,5.5] #[23, 34, 3.3, 4.

  • Python学习之列表和元组的使用详解

    目录 列表和元组简介 列表学习要点 列表的声明语法 列表的读取 列表操作 列表元素的修改和删除 列表元素合并 列表元素顺序变化 元组学习要点 元组基本知识 元组的基本操作 列表和元组简介 如果说在 Python 语言中找一个最优秀的数据类型,那无疑是列表,如果要在推荐一个,那我选择元组,本篇博客我们的重心会放在列表上,元组可以看成不能被修改的列表,所以作为赠品 进行学习即可. 列表是一种非常灵活的数据结构,可以弥补前文字符串类型的很多不足. 正式学习前,还需要记住两个英文单词,列表(list),

  • Python学习笔记之列表推导式实例分析

    本文实例讲述了Python学习笔记之列表推导式.分享给大家供大家参考,具体如下: 列表推导式 列表推导式可以快速简练地创建列表 之前的复杂写法: capitalized_cities = [] for city in cities: capitalized_cities.append(city.title()) 简化后的写法: capitalized_cities = [city.title() for city in cities] 由此可见:借助列表推导式,我们可以使用 for 循环用一步创

  • Python学习笔记之列表和成员运算符及列表相关方法详解

    本文实例讲述了Python学习笔记之列表和成员运算符及列表相关方法.分享给大家供大家参考,具体如下: 列表和成员运算符 列表可以包含我们到目前为止所学的任何数据类型并且可以混合到一起. lst_of_random_things = [1, 3.4, 'a string', True] # 这是一个包含 4 个不同类型元素的列表 print(lst_of_random_things[0]) # 1 获取上述列表的第一个值和最后一个值 print(lst_of_random_things[0]) #

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

  • Python学习思维导图(必看篇)

    无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程 以上这篇Python学习思维导图(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 详解Python如何获取列表(List)的中位数

    前言 中位数是一个可将数值集合划分为相等的上下两部分的一个数值.如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数:如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数.在这个任务里,你将得到一个含有自然数的非空数组(X).你必须把它分成上下两部分,找到中位数. 输入: 一个作为数组的整数(int)列表(list)的. 输出: 数组的中位数(int, float). 示例 get_median([1, 2, 3, 4, 5]) == 3 get_media

  • Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)

    通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言.它不光在爬取网上资料上方便,还在NLP自然语言处理方面拥有独到的优势.这篇文章主要简单的介绍使用Python处理txt汉字文字.二维列表排序和获取list下标.希望文章对你有所帮助或提供一些见解~ 一. list二维数组排序 功能:已经通过Python从维基百科中获取了国家的国土面积和排名信息,此时需要获取国土面积并进行排序判断世界排名是否正确. 列表基础知识 列表类型同字符串一样也是序列式的数据类型,

  • Python学习之用pygal画世界地图实例

    有关pygal的介绍和安装,大家可以参阅<pip和pygal的安装实例教程>,然后利用pygal实现画世界地图.代码如下: #coding=utf-8 import json import pygal.maps.world #Pygal样式保存在模块style中,包括RotateStyle调整颜色和LightColorizedStyle加亮颜色 #也可以写成from pygal.style import LightColorizedStyle, RotateStyle import pygal

随机推荐