百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

python教程从基础到精通,第5课—List列表

toyiye 2024-06-21 12:25 9 浏览 0 评论

python教程从基础到精通,第5课—List列表

Hello,小伙伴们,又见面啦!

上一章节咱们已学习了七大数据类型的Number(数字)、Boolean(布尔类型)、String(字符串),今天咱们来研究进一步学习List(列表)

1、List(列表)的定义

List的定义方法有很多种,下面以实例来讲,代码如下:

list1 = [] # 创建一个空列表,list1=list(),显示为[]
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list3 = [
'a', 'b', 'c', 'd', 'e', 'f', 'g']
list4 =
list("abcdefg") # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list5 = ["abcdefg"] # 只有一个字符串元素
list6 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list7 = [
1, 2, "hello", 'world'] # 4个元素,前2个为数字,后2个为字符串

是不是很简单,确实。但是如果要创建一个很多的列表呢?有没有更加便捷、高效的定义方法?当然有,我们可以在列表中使用推导式的方法来创建列表,示例代码如下:

lista = [] * 10 # []
listb = [1] * 10 # [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
listc = [[] for i in range(10)] # [[], [], [], [], [], [], [], [], [], []]
listd = [i for i in range(1, 10)] # [1, 2, 3, 4, 5, 6, 7, 8, 9]
liste = ['1' for i in range(10)] # ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
listf = [i * 2 for i in range(10) if i * 2 % 8 == 0] # [0, 8, 16]找出符合条件(i*2%8==0)的值

那么2维或多维列表又如何定义呢?咱们直接看例子:

list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #定义了一个3行3列的3维列表
list2 = [[1, 2, 3, 4, 5], 'dotcpp', {1, 2, 3, }, ('www', 'dotcpp', 'com')] #定义了一个包含列表、字符串、集合、元组的4维列表
#推导式创建方法如下:

my_list = [[i for i in range(1,7)] for j in range(1,7)]
print(my_list)

如果如下:

[[1, 2, 3, 4, 5, 6],

[1, 2, 3, 4, 5, 6],

[1, 2, 3, 4, 5, 6],

[1, 2, 3, 4, 5, 6],

[1, 2, 3, 4, 5, 6],

[1, 2, 3, 4, 5, 6]]

2、List(列表)的访问

先来定义一个List,如下:

list 1= ['red', 'green', 'blue', 'yellow', 'white', 'black']

list1总共有6个元素,分别是:'red', 'green', 'blue', 'yellow', 'white', 'black' 6个字符串元素,每个元素都有index索引与value值属性,整个列表有多少个元素可以用len()方法获得。

第1元素的index是0,第2个元素的index是1,以此类推;最后一个元素的index是len(list1)-1,也可以用-1表示,因此倒数第二个元素的索引是-2,其他类推。

要访问列表中的值可以通过索引来实现,例如:

list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print(list1[0]) # red
print(list1[1]) # green
print(list1[5]) # black
print(list1[len(list1)-1]) # black
print(list1[-1]) # black

如果想知道某个元素的索引呢,可以通过以下代码获得:

list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

print(list1.index("blue")) # 2

3、List(列表)的切片

List列表切片是非常有用的功能,示例如下:

list1 = ['www', '.', 'test', '.', 'com', '.', 'cn']
print(list1) # ['www', '.', 'test', '.', 'com', '.', 'cn']
print(list1[6]) # 下标是从0开始的,[6]个元素:cn
print(list1[-2]) # 倒数第2个元素:.
print(list1[:3]) # 前3个元素:['www', '.', 'test']
print(list1[3:]) # 第3个元素之后的元素(不包含第3个字符):['.', 'com', '.', 'cn']
print(list1[2:6]) # 第2个元素之后到第6个元素组成的列表:['test', '.', 'com', '.']
print(list1[::2]) # 偶数位置的元素组成的列表:['www', 'test', 'com', 'cn']
print(list1[::-1]) # 逆置列表:['cn', '.', 'com', '.', 'test', '.', 'www']

4、列表的操作方法

1) 改变元素的值

列表的元素是可以改变的,上面讲了可以直接通过索引或下标来访问元素,那么我们可以在访问元素值的时候赋予其新的值,示例代码如下:

list6 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list6[
0] = "orange"
list6[3] = 'purple'
print(list6) # ['orange', 'green', 'blue', 'purple', 'white', 'black']


2) 增加元素append()、extend()方法

list.append(obj),在列表末尾添加新的对象

list.extend(seq),在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

示例代码:

list1 = ['red', 'green', 'blue']
list2 = [
1, 2, 3]
list1.append(
"grey")
print(list1) #['red', 'green', 'blue', 'grey']
list1.extend(list2)
print(list1) #['red', 'green', 'blue', 'grey', 1, 2, 3]


3) 插入元素insert()方法

list.insert(index,obj),在索引index位置插入对象obj

list2 = [1, 2, 3]

list2.insert(2,[7,8,9]) # 在索引为2的位置插入对象
print(list2) #[1, 2, [7, 8, 9], 3]


4) 删除元素remove()方法、pop()方法

list.remove(obj),移除列表中某个值的第一个匹配项

list.pop([index=-1]),移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list6 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list6.remove(
'black')
print(list6) # ['red', 'green', 'blue', 'yellow', 'white']
list6.remove(list6[4])
print(list6) # ['red', 'green', 'blue', 'yellow']
a = list6.pop() # 默认删除最后一个,返回被删除的值
print(list6, a) # ['red', 'green', 'blue'] yellow
list6.pop(1) # 删除下标为1的值
print(list6) # ['red', 'blue']


5) 对列表进行排序sort()方法、reverse()方法

list.sort( key=None, reverse=False),对原列表按ASCII码进行排序,两个参数均可省。

list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list2 = [
'red', 'green', 'blue', 'yellow', 'white', 'black']
list3 = [
'red', 'green', 'blue', 'yellow', 'white', 'black']
list1.sort()
#按字母顺序排序,['black', 'blue', 'green', 'red', 'white', 'yellow']
list2.sort(reverse=True) #按字母逆序排序,['yellow', 'white', 'red', 'green', 'blue', 'black']
list3.sort(key=len) #按长度排序, ['red', 'blue', 'green', 'white', 'black', 'yellow']


基中key可以是做函数,python有内置的函数可以直接用,常用的内置key函数包括:

(1)str.lower() / str.upper():将字符串转换为小写/大写字母后再进行比较。适用于字符串的大小写不敏感的情况。

例如,按照字符串的字母顺序排序:

lst = ['abc', 'A', 'Ab']

lst.sort(key=str.lower)

print(lst)

# 输出:['A', 'Ab', 'abc']

(2)abs():返回数值的绝对值。适用于按照数值大小排序的情况。

例如,按照数值的绝对值大小排序:

lst = [-3, 1, -2]

lst.sort(key=abs)

print(lst)

# 输出:[1, -2, -3]

(3)len():返回对象的长度。适用于按照对象大小排序的情况。

例如,按照字符串长度排序:

lst = ['abc', 'a', 'ab']

lst.sort(key=len)

print(lst)

# 输出:['a', 'ab', 'abc']

list.reverse(),反向列表中元素,代码如下:

list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list1.reverse()
print(list1) # ['black', 'white', 'yellow', 'blue', 'green', 'red']


6) 列表的清空clear()与复制copy()

list1 = ['red', 'green', 'blue']
list2 = [
1, 2, 3]
list2 = list1.copy()
# 列表被新的列表所覆盖
list1.clear() # 清空列表
print(list1) # []
print(list2) # ['red', 'green', 'blue']


7) 列表的的计数方法count()

list.count(obj),统计某个元素在列表中出现的次数

list1 = ['red', 'green', 'blue', 'red']
print(list1.count('blue')) # 1
print(list1.count('red')) # 2

5、其它相关方法或函数

示例代码:

list1 = ['red', 'green', 'blue', 'red']
str1 =
"good boy"
print(len(list1)) # 4
print(max(list1)) # red
print(min(list1)) # blue
print(list(str1)) # ['g', 'o', 'o', 'd', ' ', 'b', 'o', 'y']

愉快学习的时光总是过得很快,一不小心又到结尾啦。

先来给自己一个奖励,双手举起,yeah!

有什么问题可以关注我/私信我/加好友,让我们一起成长吧。


相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码