【python 基础篇 五】python的常用数据类型操作-------列表
admin
2024-05-08 05:02:29
0

目录

      • 1.列表的基本概念和定义
      • 2.列表的常用操作
        • 2.1 列表的增加操作
        • 2.2 列表的删除操作
        • 2.3 列表的修改操作
        • 2.4 列表的查找操作
        • 2.5 列表的遍历操作
        • 2.6 列表的判断和比较操作
        • 2.7 列表的排序操作
        • 2.8 列表的乱序和反转操作

1.列表的基本概念和定义

  1. 概念:有序的可变的元素集合
  2. 列表的定义方式:
    • 方式1: [元素1,元素2,…] num = [1 , 2 , “a” , True]
    • 方式2:列表生成式 列表推导式
      • 列表生成式
        • 语法:range(stop) [0,1,2,…,stop-1]
        • 语法:range(start,stop,step=1)
      • 列表推导式
        • 语法:[表达式 for 变量 in 列表 ]
        • 语法:[表达式 for 变量 in 列表 if 条件]
    • 注意:
      • 列表中的元素可以还是列表
      • 和其他语言中的数组有区别,其他语言的数组只能存放同一类型的元素
#[元素1,元素2,.....]
lsit1 = [0,2,"abc",'a',True]#列表生成式
lsit2 = range(10)
lsit3 = range(2,10,2)
print(lsit1)#输出 [0, 2, 'abc', 'a', True]
#为了防止生成的列表没有被使用,python3做了一些改变,不会立即生成列表 如果直接输出会有如下场景,只有在调用时候才生成
print(lsit2)#输出 range(0, 10)
print(lsit3)#输出 range(2, 10, 2)#列表推导式
#[表达式 for 变量 in 列表 ]
#[表达式 for 变量 in 列表 if 条件]
nums = [1,2,3,4,5,6]
resultList1 = [num+1 for num in nums]
resultList2 = [num**2 for num in nums]
print(resultList1)#输出[2, 3, 4, 5, 6, 7]
print(resultList2)#输出[1, 4, 9, 16, 25, 36]
resultList3 = [num**2 for num in nums if num%2 !=0]
resultList4 = [num**2 for num in nums if num%2 ==0]
print(resultList3)#输出[1, 9, 25]
print(resultList4)#输出[4, 16, 36]

2.列表的常用操作

2.1 列表的增加操作

  • append()
    • 作用:在列表最后追加一个新元素
    • 语法:list.appden(object)
      • object:要添加的元素
      • 会修改原列表
  • insert()
    • 作用:在指定索引前面,追加一个新元素
    • 语法:list.insert(index,object)
      • index:索引 插到索引之前
      • object:要添加的元素
      • 会修改原列表
  • extend()
    • 作用:向列表中,扩展另一个可迭代序列
    • 语法:list.extend(iterable)
      • iterable:可迭代集合 字符串 列表 元组等
      • 会修改原列表
  • 乘法运算 加法运算
    • 乘法运算:[“A”] *3 = [“A”,“A”,“A”]
    • 加法运算:[“A”] + [“B”] = [“A”,“B”]
    • 加法和extend的区别:
      • 加法不修改原字符串
      • 加法相加只能是同类型的
#append
nums = [1,2,3,4,5,6]
nums.append(1)
nums.append("as")
nums.append(True)
print(nums)#输出[1, 2, 3, 4, 5, 6, 1, 'as', True]#insert
nums = [1,2,3,4,5,6]
nums.insert(1,2)
nums.insert(3,"as")
nums.insert(5,True)
print(nums)#输出[1, 2, 2, 'as', 3, True, 4, 5, 6]#extend
nums1 = [1,2,3,4,5,6]
nums2 = [1,2,3,4,5,6]
iterable = ["as",22,5,True]
str = "asfxgg"
nums1.extend(iterable)
print(nums1)#输出[1, 2, 3, 4, 5, 6, 'as', 22, 5, True]
nums2.extend(str)
print(nums2)#输出[1, 2, 3, 4, 5, 6, 'a', 's', 'f', 'x', 'g', 'g']

2.2 列表的删除操作

  • del语句
    • 作用:删除一个指定元素(对象)
    • 语法: del 指定元素
    • 注意:
      • 可以删除整个列表
      • 可以删除一个变量
      • 可以删除某个元素
  • pop()
    • 作用:移除并返回列表中指定索引对应元素
    • 语法:list.pop(index=-1)
      • index:需要被删除返回的元素索引 默认值是-1 也就是对于列表最后一个元素
      • 会修改原列表 注意索引越界
  • remove()
    • 作用:移除列表中指定元素
    • 语法:list.remove(object)
      • object:需要被删除的元素
      • 会修改原列表
      • 如果要删除的元素不存在会报错
      • 如果要删除的元素存在多个,只会删除最左侧的一个
#del
nums = [1,2,3,4,5,6]
del nums[1]
print(nums)#输出[1, 3, 4, 5, 6]
del nums#直接删除数组
print(nums)#输出 报错 nums is not defined#pop
nums = [1,2,3,4,5,6]
print(nums.pop(2))#输出3
print(nums)#输出[1, 2, 4, 5, 6]#remove
nums = [1,2,3,4,5,6]
nums.remove(2)
print(nums)#输出[1, 3, 4, 5, 6]nums1 = [1,2,3,2,4,5,6]
nums1.remove(2)
print(nums1)#输出[1, 3, 2, 4, 5, 6]nums2 = [1,2,3,2,4,5,6]
nums2.remove(12)
print(nums1)#输出 报错 list.remove(x): x not in list

2.3 列表的修改操作

  • names[index]=xxx
    • 作用:修改列表元素
    • 语法: names[index]=xxx
    • 注意:
      • 要防止越界出现
nums = [1,2,3,4,5]
nums[1] = 666
print(nums)#输出 [1, 666, 3, 4, 5]

2.4 列表的查找操作

  • index()
    • 作用:获取某个元素的索引
    • 语法: list.index(object)
      • object:需要获取索引的元素
      • 返回值:int
  • count()
    • 作用:获取指定元素的个数
    • 语法:list.count()
      • 返回值 int
  • list[]
    • 作用:获取多个元素 切片
    • 语法:list[start​:end:​step]
      • start:开始位置
      • end:结束位置
      • step:步长
#index
nums = [1,5,6,8,1,2]
x = nums.index(5)#获取5的索引值
print(x,nums[x])#输出 1  5#count
nums = [1,5,6,8,1,2,'a',"a"]
x = nums.count(1)#获取1的个数
a = nums.count("a")#获取"a"的个数
print(x)#输出2
print(a)#输出2#list[]
nums = [3,5,4,8,9,1,3,4,85,3] 
pic1 = nums[::]
pic2 = nums[1:4:]
pic3 = nums[1:8:2]
pic4 = nums[::-1]
print(pic1)#输出[3, 5, 4, 8, 9, 1, 3, 4, 85, 3]
print(pic2)#输出[5, 4, 8]
print(pic3)#输出[5, 8, 1, 4]
print(pic4)#输出[3, 85, 4, 3, 1, 9, 8, 4, 5, 3]

2.5 列表的遍历操作

#方式 1
#根据元素进行遍历
#for item in items:
#	print(item)
nums = [3,5,4,8,9,1,3,4,85,3]
for num in nums:print(num)#方式 2 通过枚举函数 
#通过函数将一个可遍历的数据对象 组合为一个索引序列 同时列出数据下标和数据
#语法 enumerate(sequence start=0) sequence--一个序列,迭代器或其他支持迭代对象 start---下标开始位置
nums = ["a","b","c","d","e"]
#1.先根据列表,创建一个枚举对象
#enumerate(nums)#把列表对象转换成枚举对象
#list(enumerate(nums))#再把枚举对象转换成列表对象  这样下标和下标对应的元素就出来了
#遍历整个的枚举对象(枚举对象可以直接被遍历出来)
for idx,val in enumerate(nums):print(idx)print(val)
"""输出
0
a
1
b
2
c
3
d
4
e
"""

2.6 列表的判断和比较操作

判断

  • 元素 in 列表
  • 元素 not in 列表

比较

  • 比较运算符
#判断
s = "abc"
nums = [1,2,3,65,46]
print("a" in s)#输出True
print("e" not in s)#输出True
print(2 in nums)#输出True
print(65 not in nums)#输出Falsenums = [1,2,3]
nums1 = [3,5,4]
print(nums==nums1)#输出 False
print(nums>nums1)#输出 False
print(nums

2.7 列表的排序操作

  • sorted
    • 内建函数 可以对所有可迭代对象进行排序
    • 语法:sorted(itrearble,key=None,reverse = False)
      • itrearble 可迭代对象
      • key 排序关键字 值为一个函数,此函数只有一个参数且返回一个值
      • reverse 控制升序降序 默认False为升序
      • 返回值:为一个排序好的列表
  • sort
    • 列表对象方法 只适用于列表对象
    • 语法:list.sort(key = None,reverse =False)
      • key 排序关键字 值为一个函数,此函数只有一个参数且返回一个值
      • reverse 控制升序降序 默认False为升序
#sorted
s = "abcsofjwf"
result = sorted(s)
print(result)#输出['a', 'b', 'c', 'f', 'f', 'j', 'o', 's', 'w']
result1 = sorted(s,reverse=True)
print(result1)#输出['w', 's', 'o', 'j', 'f', 'f', 'c', 'b', 'a']gs = [("lz",12),("lz",32),("lz",25),("lz",65),("lz",99)]
result2 = sorted(gs)
print(result2)#输出[('lz', 12), ('lz', 25), ('lz', 32), ('lz', 65), ('lz', 99)]
#此时想用岁数排序
def getKey(x):return x[1]
result3 =sorted(gs,key=getKey,reverse=True)
print(result3)#输出 [('lz', 99), ('lz', 65), ('lz', 32), ('lz', 25), ('lz', 12)]#sort
def getKey(x):return x[1]
gs = [("lz",12),("lz",32),("lz",25),("lz",65),("lz",99)]
gs.sort(key=getKey,reverse=True)
print(gs)#输出[('lz', 99), ('lz', 65), ('lz', 32), ('lz', 25), ('lz', 12)]

2.8 列表的乱序和反转操作

  • shuffle
    • 作用:可以随机打乱一个
    • 语法:导入random模块
      • import random
      • random.shuffle(list)
  • sort
    • 用法:反转列表
    • 语法:list.reverse()
import random
nums = [1,2,3,4,5,6]
random.shuffle(nums)
print(nums)#随机打乱 [1, 3, 6, 4, 2, 5]nums.reverse()
print(nums)#[6, 5, 4, 3, 2, 1]

相关内容

热门资讯

军训是什么? 军训是什么?军训是学校开学的 必备课 ,有锈的锻炼同学们的意志 让他们积极乐观 学习 乐于助人的精神
想写小说,可文采一般,问怎样才... 想写小说,可文采一般,问怎样才能提高自己的文采推荐一些可提高文笔的书看,和写小说的注意事项多看一些文...
黑暗浮士德那一集死的 黑暗浮士德那一集死的凹凸曼。。。什么鬼   --大脑是好的,真希望每个人都有去黑暗浮士德吧,这里的貌...
推荐几本好看的探险小说 推荐几本好看的探险小说答:《我只偷上流社会》虽然不能完全算上探险类,不过也不错
玄幻小说《无双界》!是修武小说... 玄幻小说《无双界》!是修武小说的开山之作吗?不是。修武是啥我不知道,但《无双界》是去年的新书。修仙的...
,心开头的成语接龙 ,心开头的成语接龙心开头的成语接龙:心想事【成】竹在【胸】有成【竹】报平【安】步当【车】水马【龙】飞...
星际争霸2战网点数怎么充值? 星际争霸2战网点数怎么充值?实卡 叫什么卡 一张多少点 要多少张才能终身魔兽世界实体充值卡通用,1元...
2025第十六届东方太阳文化嘉... 齐鲁晚报·齐鲁壹点 丁世海 7月13日,2025第十六届东方太阳文化嘉年华在日照天台山旅游区举行。本...
霍时枭苏沫小说叫什么名 霍时枭苏沫小说叫什么名霍时枭苏沫小说叫《穿越游龙戏凤:天才小王妃》。
凌空瞰绿原·亲子乐盛夏——希泊... 今天,以“凌空瞰绿原·亲子乐盛夏”为主题的暑期大型亲子周末活动在内蒙古鄂托克前旗风光如画的希泊尔驿站...
两山结盟 美美与共——甘孜文旅... 7月12日,甘孜文旅与长白山文旅相聚长白山举行合作交流活动并签署协议。此次活动是继4月17日吉林省文...
新手刚开始怎么样写小说?写什么... 新手刚开始怎么样写小说?写什么类型的?写多少字?首先要了解自己擅长什么,自己想写的故事是什么类型,一...
旅游团报名西安四日游多少钱?西... 假期的临近,我和家人开始规划这次难得的旅行。作为历史爱好者的我,西安自然成为了我们的首选目的地。这座...
重庆渝中文旅致歉,回应游客称在... 13日清晨,渝中文旅发布情况通报: 近日,获悉洪崖洞景区附近因揽客拍照引发纠纷,重庆市渝中区文化旅游...
敦煌藻井配色:姜黄×钴蓝的东方... 敦煌藻井配色:姜黄×钴蓝的东方色彩应用手册 在莫高窟第407窟的藻井中央,两只飞天正驾着祥云穿越时光...
蓝牙耳机能够听手机里的所有声音... 蓝牙耳机能够听手机里的所有声音吗可以的。我手机千千静听放歌就可以从蓝牙耳机里听到,手机调静音的话耳机...
暖心救助显真情,水洞沟景区工作... 近日,银川市水洞沟景区发生了一件温暖人心的好人好事,景区工作人员的快速反应和无私帮助赢得了游客的深情...
普陀山香会节单日客流突破15.... 新京报讯(记者吴梦真)近日,浙江普陀山香会节迎来朝圣高峰。新京报记者从舟山海事局获悉,截至13日12...
清凉游、非遗赛事……多彩假日解... 天气炎热,很多人选择戏水消解暑意。为了满足游客需求,黑龙江省集贤县将冬季玩雪胜地改造成森林高山漂流、...
超限猎兵凯能atf种类 超限猎兵凯能atf种类为什么让凯恩战死?第一季的主角机:前导凯能、近战凯能和重装凯能第二季:前锋凯能...