文章目录

  • 1、列表概念
  • 2、列表对象的创建
  • 3、列表访问
    • 3.1. 索引获取列表元素
    • 3.2、嵌套列表索引获取列表元素
    • 3.3、获取指定元素的索引
  • 4、查询列表
  • 5、列表增加
  • 6、列表删除
  • 7、列表修改
  • 8、列表排序
  • 9、列表生成式

1、列表概念

语法:使用方括号 [] 括起来以逗号分隔的数据
特性:

  1. 列表是有序的
  2. 同一个列表可以包含不同类型的数据
  3. 列表中的元素可以重复出现
  4. 可以通过索引的方式来访问列表的元素
  5. 列表可以嵌套列表
  6. 列表的元素可以修改
  7. 列表相当于其它语言中的数组

2、列表对象的创建

  1. 使用中括号
  2. 调用内置函数list(),使用list()可以将任何可迭代的数据转换为列表
#字符串转换为列表
>>> a=list('ggggdgag')
>>> a
['g', 'g', 'g', 'g', 'd', 'g', 'a', 'g']#通过range函数转换为列表
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5,-10,-1))   #range(start,end,step),只有end必选
[5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

3、列表访问

3.1. 索引获取列表元素

  • 正向索引从O到N-1举例: Ist[0]
  • 逆向索引从-N到-1举例: lst[-N]
  • 指定索引不存,抛出lndexError
  • 列表的访问索引、切片方法和字符串使用方法相同,包括步长方法
lst=['hello','world',98,'hello','world',234]
#获取索引为2的元素,该处是为正向索引,从1开始
print(lst[2])
#获取索引为-3的元素,负向索引,从-1开始
print(lst[-3])
#print(lst[10]) IndexError: list index out of range,超出了索引的范围,会抛出异常

3.2、嵌套列表索引获取列表元素

访问其中某个元素时,索引的使用方法是列表名[嵌套列表的位置][所需访问的元素在嵌套列表的位置]

my_list = ['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']
print(my_list[0])
print(my_list[1])
print(my_list[1][0])
print(my_list[1][1]

3.3、获取指定元素的索引

  1. index():
  2. 如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
  3. 如果查询的元素在列表中不存在,则会抛出ValueError
  4. 还可以在指定的start和stop之间进行查找
lst=['hello','worid',98,'hello']
print(lst.index('hello'))  #如果列表种由相同元素值返回列表中相同元素的第一个索引
#print(lst.index('python'))  #ValueError: 'python' is not in list,说明里面没有这个元素
#print(lst.index('hello',1,3)) #ValueError: 'python' is not in list  ,1是指world,3值hello,但他不包括1和3本身,所以找不到
print(lst.index('hello',1,4))

4、查询列表

判断指定元素在列表中是否存在:
元素 in 列表名
元素 not in 列表名
列表元素的遍历:
for 迭代变量 in列表名:
操作

print('p'in'python') #true
print('k'not in 'python') #trueprint('-------遍历-------------')
for item in lst:print(item)

5、列表增加

方法 操作说明
append() 在列表的末尾添加一个元素
extend() 在列表的末尾至少添加一个元素
insert() 在列表的任意位置添加一个元素
切片 在列表的任意位置添加至少一个元素
#向列表的末尾添加一个元素
>>> lst=[10,20,30]
>>> print('添加元素之前',lst,id(lst))
#添加元素之前 [10, 20, 30] 53497344
>>> lst.append(100)
>>> print('添加元素之后',lst,id(lst))
添加元素之后 [10, 20, 30, 100] 53497344
#通过对比添加元素前后的id可知,添加元素后他并没有创建新的对象>>> lst2=['hello','world']
>>> lst.append(lst2)
>>> lst
[10, 20, 30, 100, ['hello', 'world']]
#lst.append(lst2) #这个操作是将lst2作为以一个元素添加到列表的末尾#向列表的末尾一次性添加多个元素,不创建新对象
>>> lst.extend(lst2)
>>> lst
[10, 20, 30, 100, ['hello', 'world'], 'hello', 'world']#在任意位置上一添加一个元素,不创建对象
>>> lst.insert(1,90) #意思是在索引为1的位置上添加90
>>> lst
[10, 90, 20, 30, 100, ['hello', 'world'], 'hello', 'world'#任意位置上添加N个元素,不创建对象
>>> lst3=['true','false','hello']
>>> lst[1:]=lst3
>>> lst
[10, 'true', 'false', 'hello'] #其实就是从下标1到指定元素的值改为lst3的值#使用+号
>>> eight_immortal +=[50] #不创建对象
>>> eight_immortal=eight_immortal+[100] #创建新对象#说明:+,append()不一样地方是,+为向当前列表追加一个或多个元素,append则是根据append内容添加一个元素或一个列表,也就是说append一次只能增加一个元素或一个列表

6、列表删除

方法/其它 操作描述
remove -次删除一个元素
重复元素只删除第一个
元素不存在抛出ValueError
pop() 删除一个指定索引位置上的元素
指定索引不存在抛出IndexError
不指定索引,删除列表中最后一个元素
切片 一次致少删除一个元素
clear() 清空列表
del 删除列表
lst=[10,20,30,40,50,60,70,80,30]
lst.remove(30)  #从列表中移除一个元素,如果又重复元素只移第一个
print(lst)
#pop()根据索引移除元素
lst.pop(1)
print(lst)  #可以发现索引为1的位置上的元素被移除了
#lst.pop(6)  如果指定的索引位置不存在则抛出异常
lst.pop()  #如果不指定参数,则将删除列表中的最后一个元素
print(lst)print('------------切片操作-------------')
new_list=lst[1:3]
print('源列表',lst)
print('切片后的列表',new_list)'''不产生新的列表对象,二十删除原列表中的内容'''
lst[1:3]=[]  #其实不是真正的删除,而是用一个空列表将起替代
print(lst)
'''清除列表中的所有元素'''
lst.clear()
print(lst)'''del语句将列表对象删除'''
del lst
#print(lst)  会报错,找不到列表

7、列表修改

1、为指定索引的元素赋予一个新值
2、为指定的切片赋予一个新值

#一次修改一个
>>> l=[1,2,3,4]
>>> l[0]=0
>>> l
[0, 2, 3, 4]
#一次修改多个
>>> lst=[10,20,30,40]
>>> lst[1:3]=[300,400,500,600]
>>> lst
#将下标1、2元素替换掉,并将多余元素追加至下标2后
[10, 300, 400, 500, 600, 40]
>>> lst[1:3]=[300,400,500,600]
>>> lst
[10, 300, 400, 500, 600, 500, 600, 40]
#将下标1-49元素替换
>>> lst[1:50]=[300,400,500,600] #同等于lst[1:]
>>> lst
[10, 300, 400, 500, 600]

8、列表排序

1、调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序
2、调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变

>>> lst=[20,40,10,98,54]
>>> print('排序前的列表',lst,id(lst))
排序前的列表 [20, 40, 10, 98, 54] 45669120
#开始排序,调用列表对象的sort方法,升序排序
>>> lst.sort() #不产生新的列表对象
>>> print('排序后的列表',lst,id(lst))
排序后的列表 [10, 20, 40, 54, 98] 45669120#通过指定关键字参数,将列表中的元素进行排序
>>> lst.sort(reverse=True)   #reverse=True表示降序排序,reverse=False就是升序排序
>>> lst
[98, 54, 40, 20, 10]
>>> lst.sort(reverse=False) #不产生新的列表对象
>>> lst
[10, 20, 40, 54, 98]#------------使用内置函数sorted()对列表进行排序,将产生一个新的列表对象------------
>>> print('原列表',lst)
原列表 [10, 20, 40, 54, 98]
>>> new_list=sorted(lst) #开始排序
>>> lst
[10, 20, 40, 54, 98]
>>> new_list
[10, 20, 40, 54, 98]
>>> id(lst)
45669120
>>> id(new_list)
54132096
#指定关键字参数,实现列表元素的降序排序
>>> desc_list=sorted(lst,reverse=True)
>>> desc_list
[98, 54, 40, 20, 10]

9、列表生成式

#带上for循环,并且对变量进行后计算
>>> a=[x*2 for x in range(10)]
>>> a
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]#带上if条件
>>> b=[x*2 for x in range(100) if x%9==0]
>>> b
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

python-列表list(详细)相关推荐

  1. python list map成员排序_python的map关于Python列表排序方法reverse、sort、sorted详细说明...

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  2. Python列表和元组的详细区别

    文章目录 Python列表和元组的详细区别 一.列表和元组的区别 二.列表(List) 三.元组(Tuple) Python列表和元组的详细区别 一.列表和元组的区别 列表是动态数组,它们可变且可以重 ...

  3. 详细讲解用Python列表for循环还有if判断语句写出1-100之内的素数,思路清晰语法准确代码简单易懂实用

    详细讲解用Python列表for循环还有if判断语句写出1-100之内的素数,思路清晰语法准确代码简单易懂实用,当然还有一定技巧的算法渗透其中.请看视频: Python 代码实例,找出1-100之内的 ...

  4. Python入门基础篇(一)列表,详细实用,简单易懂!!!!

    请仔细阅读哦!!! 文章目录 前言 一.Python列表的创建与删除 1.赋值运算符直接创建列表 2.创建空列表 3.创建数值列表 4.删除列表 二.访问列表中的元素 三.遍历列表中的元素 1.直接使 ...

  5. python列表平均值函数_如何计算列表的平均值-统计信息和Python的均值函数详细解释

    python列表平均值函数 Mathematics and programming go hand in hand. If you are a programmer, at some point yo ...

  6. python详细教程-python入门(非常详细的教程)

    对于初学者而言,您要做的只是专注于Python语言,阐明学习重点,掌握学习节奏,并逐步学习.根据我多年的学习和工作经验,编程语言的学习分为以下三个步骤,无论您是否具有编程基础,都可以通过比较来完成. ...

  7. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

  8. 在python中、下列代码的输出是什么-python面试题详细总结(附答案)

    本篇文章给大家带来的内容是关于python面试题总结(附答案),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. CPS少儿编程网-Scratch_Python_教程_免费儿童编程学习平 ...

  9. python列表解析式如何使用_python列表推导式操作解析

    python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 ​[表达式 ...

  10. python列表、元组、字典和集合的算法时间_27.Python列表(list)、元组(tuple)、字典(dict)和集合(set)详解...

    本章将会介绍 Python 内置的四种常用数据结构:列表(list).元组(tuple).字典(dict)以及集合(set). 这四种数据结构一但都可用于保存多个数据项,这对于编程而言是非常重要的,因 ...

最新文章

  1. 编写程序记录文件位置
  2. jQuery实现新浪微博自动底部加载的方法
  3. spring的Bean属性
  4. docker mysql主从_使用docker 实现MySQL主从同步/读写分离
  5. .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
  6. Python编程基础07:选择结构
  7. Flink之Redis的安装及RedisSink的用法
  8. 把握这两点,抢占下一个电商风口|2016最新中国电商App排名研究报告
  9. 【0】依照Django官网:实现第一个django app 安装必要的工具/模块
  10. 2021online普及组【吃豆人】O(4N)
  11. Linux系统cut命令详解
  12. pandas的DataFrame数据画图matplotlab曲线如何改变时间刻度【间隔时间】并格式化日期显示总结
  13. Rockchip Android平台内存优化及系统裁剪
  14. 计量经济学及Stata应用案例(一)
  15. 产品经理的核心竞争力是什么?为什么?
  16. 在声音制作中的几个压缩器使用问题,你知道几个呢?
  17. GPRS核心网信息元素—P-TMSI
  18. TF卡里删掉文件后内存没变大_TF卡,SD卡,读卡器,USB拓展坞如何选?看这篇就够了...
  19. 储能系统下垂控制,输出电流按虚拟电阻比例分配,并补偿有下垂系数带来的母线压降
  20. 100道动态规划——34 UVA 10559 Blocks 状态的定义 状态转移方程

热门文章

  1. mac活动监视器里很多java_Mac活动监视器在哪 Mac活动监视器怎么用?
  2. 推荐一首好歌 布列瑟农(bressanon)
  3. 中医对伤风感冒的看法
  4. Java课程设计题目一:动物换位
  5. 多目标蚂蚁狮子优化算法(Matlab代码实现)
  6. 信息化时代下的我们----弄潮儿
  7. C语言实现MD5校验
  8. 免费的PPT转Flash工具:iSpring Free绿色版
  9. [基础]tfcenter开启socks5代理功能
  10. 计算机cmp代表什么意思,CMP指令