python学习5-列表的创建、增删改查、排序

简介: python学习5-列表的创建、增删改查、排序

一、列表的创建方式

1、使用中括号
lst=['hello','world',98]
2、调用内置函数list()
lst2=list(["hello",'world',98])

二、列表的特点

  • 1、列表元素按顺序有序排序
  • 2、索引映射唯一一个数据
  • 3、列表可以存储重复数据
  • 4、任意数据类型混存
  • 5、根据需要动态分配和回收内存

三、列表的查询操作

1、获取列表中指定元素的索引 index()
#如果查找列表中有N个相同元素,只返回相同元素中的第一个元素的索引
lst=['hello','world',98,'hello']
print(lst.index('hello'))
#如果查询的元素在列表中不存在,则会抛出ValueError
print(lst.index('python'))
#还可以在指定的start和stop之间进行查找
print(lst.index('hello',1,3))  #ValueError: 'hello' is not in list   "world",98
print(lst.index("hello",1,4))   #"world",98,"hello"
2、获取列表中的单个元素
#正向索引从0~N-1  逆向索引从-N到-1 指定索引不存在,抛出IndexError
lst2=['hello','world',98,'hello','world',234]
#获取索引为2的元素
print(lst[2])
print(lst2[-4])
#获取索引为10的元素
print(lst2[10])  #IndexError: list index out of range
3、获取列表中的多个元素_切片操作 语法格式 列表名[start:stop:step]
  • step为正数
lst=[10,20,30,40,50,60]
print("原列表:",id(lst)) #1713813270848
lst2=lst[1:6:1]
print("切的片段:",id(lst2)) #1713808072640  切出来的是新的列表对象
print(lst[1:6])  #[20, 30, 40, 50, 60] 默认步长为1
print(lst[1:6:]) #也代表步长为1
  • step为负数
    切片的第一个元素默认是列表的最后一个元素
print(lst[::-1])  #[60, 50, 40, 30, 20, 10]
print(lst[6:0:-1]) #[60, 50, 40, 30, 20] 需要注意:stop的项是到此结束,但是不包括此项
4、判断指定元素在列表中是否存在 in/not in
print(10 in lst) #True
print("y" in lst) #False
5、列表元素的遍历 for…in
for item in lst:
    print(item)

四、列表元素的增加操作

1、append() 在列表的末尾添加一个元素
print("添加之前:",lst)  #[10, 20, 30, 40, 50, 60]
print(id(lst))
lst.append(100)
print("添加之后:",lst)  #[10, 20, 30, 40, 50, 60, 100]
print(id(lst))   #id相同,说明是同一个列表对象
2、extend() 在列表的末尾至少添加一个元素
lst2=['hello','world']
lst.append(lst2)   #不能将它直接print,它必须单独的写 [10, 20, 30, 40, 50, 60, 100, ['hello', 'world']]
lst.extend(lst2)   #[10, 20, 30, 40, 50, 60, 100, 'hello', 'world']
3、insert() 在列表的任意位置添加一个元素
lst.insert(1,90)  #在索引为1的位置上插入90这个元素 [10, 90, 20, 30, 40, 50, 60, 100, 'hello', 'world']
4、切片 在列表的任意位置添加至少一个元素 本质是替换
lst3=[True,False,'python']
lst[1:]=lst3 #[10, True, False, 'python']  从索引1开始之后的所有元素用新的列表元素替换

五、列表元素的删除操作(前四个是删除元素,最后一个del是删除列表)

1、remove() 一次删除一个元素,重复元素只删除第一个,元素不存在抛出ValueError
lst4=[10,20,30,40,50,20]
lst4.remove(10)   #[20, 30, 40, 50]
lst4.remove(100) #ValueError: list.remove(x): x not in list
lst4.remove(20) #[10, 30, 40, 50, 20]
2、pop() 删除一个指定索引位置上的元素,指定索引不存在抛出IndexError,不指定索引删除列表中最后一个元素
lst4.pop(1) #[10, 40, 50, 20]
lst4.pop(10) #IndexError: pop index out of range
lst4.pop() #[10, 30, 40, 50]
3、切片 一次至少删除一个元素,将产生一个新的列表对象
new_list=lst4[1:3]
print("切片前的列表:",lst4) #[10, 30, 40, 50]
print("切片后的列表:",new_list)  #[30, 40]
#不产生新的列表对象,而是删除原列表中的内容 本质是替换
lst4[1:3]=[]   #[10, 50] 把从索引1-2用空元素代替,相当于将中间部分切除
4、clear() 清空列表的所有元素
lst4.clear() #[]
5、del 删除列表 将列表对象删除
del lst4  #NameError: name 'lst4' is not defined

六、列表元素的修改操作

1、为指定索引的元素赋予一个新值
lst=[10,20,30,40]
lst[2]=100  #[10, 20, 100, 40]
2、为指定的切片赋予一个新值,修改多值
lst[1:3]=[100,200,300,400]   #[10, 100, 200, 300, 400, 40]

七、列表的排序操作(两种,sort()方法在原列表上改变,sorted()方法产生新的列表对象)

1、使用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序
lst=[20,40,10,98,34]
print("排序前的列表:",lst)   #[20, 40, 10, 98, 34]
lst.sort()
print("排序后的列表:",lst)   #[10, 20, 34, 40, 98]  id相同,是在原列表的基础上进行的
lst.sort(reverse=True)   #reverse=True表示降序排序,reverse=False表示升序排序,默认是升序排序
print(lst) #[98, 40, 34, 20, 10]
2、调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变(产生新的列表对象)
new_list=sorted(lst)
print(new_list)  #[10, 20, 34, 40, 98]
desc_list=sorted(lst,reverse=True)
print(desc_list) #[98, 40, 34, 20, 10]

八、列表生成式

lst=[i for i in range(1,10)]
print(lst)  #[1, 2, 3, 4, 5, 6, 7, 8, 9]
lst=[i*i for i in range(1,10)]  #表示列表元素的表达式中通常包含自定义变量,表示列表元素的表达式:i*i
print(lst)  #[1, 4, 9, 16, 25, 36, 49, 64, 81]
lst2=[i*2 for i in range(1,6)]
print(lst2) #[2, 4, 6, 8, 10]
相关文章
|
2月前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
24天前
|
数据挖掘 数据处理 开发者
Python3 自定义排序详解:方法与示例
Python的排序功能强大且灵活,主要通过`sorted()`函数和列表的`sort()`方法实现。两者均支持`key`参数自定义排序规则。本文详细介绍了基础排序、按字符串长度或元组元素排序、降序排序、多条件排序及使用`lambda`表达式和`functools.cmp_to_key`进行复杂排序。通过示例展示了如何对简单数据类型、字典、类对象及复杂数据结构(如列车信息)进行排序。掌握这些技巧可以显著提升数据处理能力,为编程提供更强大的支持。
29 10
|
2月前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
2月前
|
索引 Python
Python列表
Python列表。
55 8
|
2月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
46 9
|
2月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
76 14
|
2月前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
2月前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
2月前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。

热门文章

最新文章