首页 > 其他分享 >数据类型----列表的内置方法

数据类型----列表的内置方法

时间:2023-02-21 16:33:20浏览次数:41  
标签:内置 22 my 数据类型 ---- tony tom print friends

一、定义

'''
    中括号括起来,内部有多种元素,元素与元素之间用逗号隔开,元素可以是任意数据类型和嵌套
'''
# 定义
l1 = [1,'a',[1,2]]  # 本质:l1 = list([1,'a',[1,2]])

二、类型转换

但凡能被for循环遍历的数据类型都可以传给list()转换成列表类型,除了整型和浮点型

# print(list(123))  不可
# print(list(1.11)) 不可

# list()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到列表中
print(list('hello'))  # ['h', 'e', 'l', 'l', 'o']
print(list([11, 22, 33, 44]))  # [11, 22, 33, 44]
print((list({'username': "kevin", "age": 20})))  # ['username', 'age']
print(list((11, 22, 33, 44)))  # [11, 22, 33, 44]
print(list({11, 22, 33, 44}))  # [33, 11, 44, 22]

三、使用

3.1 优先掌握的操作

3.1.1 按索引取值

# 1.按索引存取值(正向存取+反向存取):即可存也可以取
# 1.1 正向取(从左往右)
my_friends = ['tony', 'jason', 'tom', 4, 5]
print(my_friends[0])  # tony
print(my_friends[3])  # 4
# 1.2 反向取(负号表示从右往左)
print(my_friends[-1])  # 5
print(my_friends[-3])  # tom
print(my_friends[-5])  # tony

# 1.3 对于list来说,既可以按照索引取值,又可以按照索引修改指定位置的值,但如果索引不存在则报错
my_friends[1] = 'martthow'
print(my_friends)  # ['tony', 'martthow', 'tom', 4, 5]

3.1.2 []切片

# 2.切片(顾头不顾尾,步长)
# 2.1 顾头不顾尾:取出索引为0到3的元素
print(my_friends[0:4])  # ['tony', 'jason', 'tom', 4]

# 2.2 步长:0:4:2,第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引0、2的元素
print(my_friends[0:4:2])  # ['tony', 'tom']

3.1.3 长度len

# 3.长度len -> length
print(len(my_friends))  # 5

3.1.4 成员运算 in 和 not in

# 4.成员运算in和not in
# 成员运算是判断元素是否在列表中
print('tony' in my_friends)  # True
print('t' in my_friends)  # False
print('xx' in my_friends)  # False

3.2 增删改查

3.2.1 增加

append:默认追加到末尾(不管是什么类型的数据,都会当成一个整体元素填进去)
insert:在指定位置添加元素(索引位置,不管是什么类型的数据,都会当成一个整体元素填进去)
extend:合并两个列表

# 1.增加
my_friends = ['tony', 'jason', 'tom', 4, 5]
# 1.1 append()列表尾部追加元素
# 不能使用索引增加,会报错
# my_friends[5] = 666
my_friends.append(666)
# print(my_friends)  # ['tony', 'jason', 'tom', 4, 5, 666]
my_friends.append(777)
print(my_friends)  # ['tony', 'jason', 'tom', 4, 5, 666, 777]


# 1.2 insert:增加指定索引位置的值
my_friends.insert(0, 999)
print(my_friends)  # [999, 'tony', 'jason', 'tom', 4, 5]
my_friends.insert(2, 'kevin')
print(my_friends)  # [999, 'tony', 'kevin', 'jason', 'tom', 4, 5]


# 1.3 extend:合并两个列表
# append是把列表的整体添加到末尾
my_friends.append([11, 22, 33, 44])
print(my_friends)  # ['tony', 'jason', 'tom', 4, 5, [11, 22, 33, 44]]
# 想要将第二个列表中的元素加到第一个列表中只能用,extend
my_friends.extend([11, 22, 33, 44])    
print(my_friends)  # ['tony', 'jason', 'tom', 4, 5, 11, 22, 33, 44]

l = ['kevin', 'jack', 'tom']
l1 = ['a', 'b', 'c', 'd']
l.extend(l1)  # for循环+append
print(l)

# extend中只有一个参数,所以想要加第三个列表,只能是一个一个列表添加,不能一次性加两个,会报错
l = ['kevin', 'jack']
l1 = ['a', 'b']
l2 = [11, 22, 33, 44]
l.extend(l1)
print(l)  # ['kevin', 'jack', 'a', 'b']
l.extend(l2)
print(l)  # ['kevin', 'jack', 'a', 'b', 11, 22, 33, 44]

3.2.2 删除

del l[0]:删除指定索引的值
remove():删除指定的元素,可不是索引
pop():弹出元素 (1. 把列表的元素删除 2. 把删除的元素又返回过来了)

# 2.删除
my_friends = ['tony', 'jason', 'tom', 4, 5]
# 2.1 del -> delete: 删除指定索引的值
# del 变量[索引]
del my_friends[0]
print(my_friends)  # ['jason', 'tom', 4, 5]
del my_friends[2]
print(my_friends)  # ['jason', 'tom', 5]

# 2.2 remove()
# 括号中直接写删除的元素,可不是索引,没有返回值
aa = my_friends.remove('jason')
print(aa)  # None 空
print(my_friends)  # ['tony', 'tom', 4, 5]

# 从左往右查找第一个需要删除的元素
l = [11, 22, 33, 22, 44]
l.remove(22)
print(l)  # [11, 33, 22, 44]


# 2.3 pop():弹出元素
# 默认删除列表最后一个元素,并将删除的值返回,括号内可以通过加索引值来指定删除元素
my_friends.pop()
print(my_friends)  # ['tony', 'jason', 'tom', 4]

aa = my_friends.pop()
print(aa)  # 4
print(my_friends)  # ['tony', 'jason', 'tom']

# 可以弹出指定索引的值
s = my_friends.pop(1)
print(s)  # jason
print(my_friends)  # ['tony', 'tom']

3.2.3 修改

# 3.修改
'''列表的最大索引长度:len(l)-1'''
print(my_friends[1])  # jason
# 1. 修改值:用索引来修改
my_friends[1] = 'jack'
print(my_friends)  # ['tony', 'jack', 'tom', 4, 5]

3.2.4 查找

# 查找:用索引取值
print(my_friends[0])  # tony
print(my_friends[-1])  # 5

3.3 需要了解的操作

3.3.1 reverse()

# 1.reverse()颠倒列表内元素顺序
l1 = [11, 22, 33, 44]
# l1.reverse()
# print(l1)  # [44, 33, 22, 11]
# 颠倒列表还可以使用:切片方式
print(l1[::-1])  # [44, 33, 22, 11]

3.3.2 sort()

# 2.sort()给列表内所有元素排序
l2 = [11, 22, 3, 42, 7, 55]
# 2.1 排序时列表元素之间必须是相同数据类型,不可混搭,否则报错
# 默认从小到大排序
l2.sort()
print(l2)  # [3, 7, 11, 22, 42, 55]
# reverse用来指定是否跌倒排序,默认为False。reverse=True表示从大到小排序
l2.sort(reverse=True)
print(l2)  # [55, 42, 22, 11, 7, 3]

# 2.2 了解知识
# 我们常用的数字类型直接比较大小,但其实,字符串、列表等都可以比较大小
# 原理相同:都是依次比较索引对应位置的元素的大小,如果分出大小,则无需比较下一个元素,比如
l1 = [666, 777]
l2 = [111, 222, 333, 444, 555, 666]
print(l2 > l1)  # False

# 字符之间的大小取决于它们在ASCII表中的先后顺序,越往后越大
s1 = 'abc'
s2 = 'az'
print(s2 > s1)  # True
# s1与s2的第一个字符没有分出胜负,但第二个字符'z'>'b',所以s2>s1成立

# 所以我们也可以对下面这个列表排序
l3 = ['A', 'z', 'adjk', 'hello', 'hea']
l3.sort()
print(l3)  # ['A', 'adjk', 'hea', 'hello', 'z']

3.3.3 循环

# 循环遍历my_friends列表里面的值
my_friends=['tony','jason','tom',4,5]
for line in my_friends:
	print(line) 

标签:内置,22,my,数据类型,----,tony,tom,print,friends
From: https://www.cnblogs.com/zjyao/p/17140624.html

相关文章

  • 碎片化学习前端之webpack(plugin)
    Plugin原理Plugin的作用通过插件我们可以扩展webpack,加入自定义的构建行为,使webpack可以执行更广泛的任务,拥有更强的构建能力。Plugin工作原理webpack就像一条......
  • Abaqus软件盗.版和正版的区别-北京衡祖仿真
    ​​ABAQUS​​​可以分析复杂的固体力学结构力学系统,特别是能够驾驭非常庞大复杂的问题和模拟高度非线性问题。ABAQUS不但可以做单一零件的力学和多物理场的分析,同时还可以......
  • jvm内存泄露分析方法
         场景:使用监控工具发现内存使用不断增加,则有可能存在内存泄露,内存泄露可以使用jmap工具进行分析。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆......
  • 京东开源热key探测(JD-hotkey)中间件单机qps 提升17倍实战
    京东hotkey框架(JD-hotkey)是京东app后台研发的一款高性能热数据探测中间件,用来实时探测出系统的热数据,并将热数据毫秒内推送至系统的业务集群服务器的JVM内存。以下统称为"热......
  • 一张图看懂CodeArts Build 6大特性,带你玩转构建服务
    华为云编译构建服务CodeArtsBuild为开发者提供配置简单的混合语言构建平台,实现编译构建云端化,支撑企业实现持续交付,缩短交付周期,提升交付效率。CodeArtsBuild支持编译构建......
  • Linux系统之安装apache服务
    (Linux系统之安装apache服务)一、检查本地系统版本[root@node~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VE......
  • Flutter异常监控 - 壹 | 从Zone说起
    如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。❤️本文原创​​听蝉​​公众号:码里特别有禅欢迎关注原创技术文章第一时间推......
  • 如何用chatGPT、爬虫IP和网络爬虫,打造一个智能有趣的聊天机器人?
    AI(人工智能)是指让机器具有感知、合成和推理信息的能力,与人类和非人类动物的智能相对应。AI可以实现从经验中学习、适应新的输入和执行类似人类的任务。我们今天听到的大多数......
  • 编码
    写题记录: 解:我们知道32位为单精度浮点数,其阶码部分有8位(含阶符)其尾数部分有24位(含数符,即把符号位也包含进去了)  即真正用来记录......
  • JAVA日志发展史,你知道多少?
    第一阶段2001年以前,Java是没有日志库的,打印日志全凭System.out和System.err缺点:   产生大量的IO操作同时在生产环境中无法合理的控制是否需要输出   输出的内......