列表常用操作

#列表 有序的可变的元素集合。
#定义
#-----------------列表的定义方式1 [元素1,元素2]

# name = ["zhanngsan","wanger","lisi"]
# print(name,type(name))
#
# name = [1,2,3,4,5,6]
# print(name,type(name))
# #列表嵌套
# items = ["a","d","c"]
# name = [1,2,3,4,5,items]
# print(name)
# name = [1,2,3,4,5,6,True,["a","b","c"]]
# print(name,type(name))

#------------列表的定义方式2----------------
#列表生产式
#写一个0-99的列表
# nums = range(1,100) python 2的方法
# print(nums)
#python 3的方法
# num = []
# nums = range(1,100)
# for i in nums:
# num.append(i)
# print(num)
# 列表推导式
# nums = range(1,100)
# resultnum = [i for i in nums]
# print(resultnum)
# nums = range(1,100)
# resultnum = [i for i in nums if i % 2 != 0] #提取基数
# print(resultnum)
# resultnum = [i for i in nums if i % 2 == 0] #提取偶数
# print(resultnum)
############################列表常用操作###################################################

# append 王列表追加一个新的元素
#语法: .append(object) 参数object
#返回值 None
#注意: 会直接修改原列表
# name = ["zhangsan","lisi","wangwu"]
# name.append("lili")
# print(name)
#insert 往列表中,追加一个元素,在指定的索引前面
#语法: .insert(index,object) index 索引,会插入到这个索引之前。object 想要添加的元素
#返回值None
#注意:会修改原数组
# name = ["zhangsan","lisi","wangwu"]
# name.insert(1,"mimi")
# print(name)

# extentd 往列表中,扩展另外一个可迭代序列
#语法: .extend(iterable)
#参数: iterable 可迭代集合 字符串,列表,元组.....
#返回值None
#注意: 会修改原数组

# nums = [1,2,3,4,5]
# nums2 = ["a","b","c"]
#
# print(nums.extend(nums2))
# print(nums)
# nums = [1,2,3,4,5]
# nums2 = "adcfgb"
#
# print(nums.extend(nums2))
# print(nums)

# 乘法运算 ["a"] * 3 就等于 ["a","a","a"]
# nums = [1,2]
# print(nums * 3)
#加法运算["a"] + ["b","c"] 就等于 ["a","b","c"]
# nums = [1,2]
# nums2 = ["a","b"]
# print( nums + nums2)
#extend的区别 只能列表和列表类型相加

#------------------------------删除操作-------------------
# del 可以删除一个指定的元素(对象)
#语法: del 指定的元素
#注意: 可以删除整个列表,删除一个变量,也可以删除某个元素
# nums = [1,2,3,4,5,6]
# del nums[2]
# print(nums)

# pop 移除并返回列表中指定索引对象的元素
#语法: .pop(index=-1)
#参数 index 需要被删除返回的元素索引,默认是-1,也就是列表最后一个
#返回值: 被删除的元素
#注意: 会直接修改原数组,注意索引越界

# nums = [1,2,3,4,5,6]
# # nums.pop()
# # print(nums)
# result = nums.pop(1)
# print(result,nums)

#remove 移除列表中指定的元素
#语法: .remove(object)
#参数: object 需要被移除的元素
#返回值 None
#注意:会直接修改原数组,如果元素不从在会报错,如果从在多个元素,会从移除左边第一个,注意循环内删除列表元素带来的坑
# nums = [1,2,3,4,5,2,2,6]
# result =nums.remove(2)
# print(result,nums)

#改 当我们想要操作一个列表中的某个元素时,一定时通过这个元素的下标(索引),来操作指定的元素
# nmaes[index] = 6666

# nums = [1,2,3,4,5,6]
# nums[4] = 8
# print(nums)

#--------------------------查询操作-----------
# 获取单个元素
# items(index)
# 注意负索引
#nums = range(10)生成1-9的列表
#index()获取某个元素的索引
# nums = [3,4,5,6,7,8,5,5,55,9]
# idx = nums.index(4)
# print(idx)
#获取指定元素的个数 count()

# nums = [3,4,5,6,7,8,5,5,55,9]
# c = nums.count(5)
# print(c)

#获取多个元素,切片 items[start:end:step]
# nums = [3,4,5,6,7,8,5,5,55,9]
# pic = nums[1:4:]
# print(pic)
# pic = nums[1:9:2]
# print(pic)
# pic = nums[::-1] #反转整个列表
# print(pic)

#----------------------列表遍历操作

# 方式1 根据元素进行遍历
# for itme in list:
# print(itme)
# values = ["a","b","c","d","e","a"]
# coutindex = 0
# for v in values:
# print(v)
# print(values.index(v,coutindex)) #遍历防止元素冲突,coutindex表示从它开始遍历
# coutindex += 1

#方式2 根据索引进行遍历
# for index in range(len(list)):
# print(index,list[index])

#values = ["a","b","c","d","e","f","g"]
#
# for index in range(len(values)): #len 列表元素的个数,然后range这个数,for在遍历这个数就会得到列表的索引
# print(index,values[index]) #在通过索引拿到这个元素

#print(len(values))

# 方式3
# 创建对应的枚举对象:通过枚举函数,生成的新对象
# 函数用于将一个客遍历的数据对象(如列表、元祖或字符串)组成一个索引序列
# 同时列出数据下表和数据
# 语法: enumerate(sequence,[start=0]), sequence 一个序列、迭代器或其他支持迭代对象。start下表起始位置
# 举例:
# values = ["a","b","c","d","e","f","g"]
# #1.先根据这个列表创建一个枚举对象,利用函数enumerate
# # print(list(enumerate(values)))
# enumerate(values)
# #2.遍历整个枚举对象,枚举对象可以直接被遍历
# for idx,val in enumerate(values): #也可以从指定的位置开始遍历enumerate(values3)
# print(idx,val)

# 方式4 使用迭代器进行遍历
# it = iter(list)
# for i in it:
# print(i)
# values = ["a","b","c","d","e","f","g"]
# val = iter(values)
# for v in val:
# print(v)
#--------------列表的额外操作-----------------
# 判定
# 元素 in 列表
# 元素 not 列表
# values = [1,2,3,4,5]
# print(5 in values)
# print(5 not in values)
# #比较
# cmp()
# 内建函数
# 如果比较的是列表,则针对每个元素,从左到右逐一比较
# >
# ==
# <
# python 3不支持cmp < > ==
# 比较运算
# ==
# >
# <
# 针对每个元素,从左到右逐一遍历

#排序
# 方式1
# 内建函数 可以对所有可迭代对像进行排序
# 语法: sorted(itrearble,key=Node,reverse=False)
# 参数:
# itrearble 可迭代对象
# key 排序关键字,值为一个函数,此函数只有一个参数且返回一个值用来进行比较
# reverse 控制升序降序,默认False也就是升序
# 返回值: 一个已近排好序的列表,列表类型

# s = "acbegscv"
# result = sorted(s,reverse=True) #reverse=True 降序,默认是升序
# print(result)

# s = [("sz",18),("sz2",16),("sz1",17),("sz3",15)]
# result = sorted(s) #默认按照列表中第一个排序
# print(result)
# #按照列表中指定的key进行排序
# def getkey(x):
# return x[1]
# result = sorted(s,key=getkey,reverse=True) #key 表示列表将里面的元组传给getkey这个函数中的x,然后return x[1]返回元组下标是1的元素.reverse=True降序,不写默认是升序
# print(result)

# 方式2
# 列表对象方法
# 语法: list.sort(key=None,reverse=False)
# key 排序关键字,值为一个函数,此函数只有一个参数且返回一个值用来进行比较
# reverse 控制升序降序,默认False也就是升序
# 返回值: None
# 注意: 修改源数据,只能操作列表

# l = [1,3,2,6,4,5]
# result = l.sort()
# print(result,)
# s = [("sz",18),("sz2",16),("sz1",17),("sz3",15)]
# def getkey(x):
# return x[1]
#
# result = s.sort(key=getkey,)
# print(result,s)




#-------------------乱序和反转-------------------
# 乱序
# 可以随机打乱一个列表
# 导入random模块
# import random
# random.shuffle(list)
# l = [1,2,3,4,5,6,7]
# import random
# result = random.shuffle(l)
# print(result,l)

# 反转,会修改列表本身
# list.reverse()
# l = [1,2,3,4,5,6,7]
# result = l.reverse()
# print(result,l)

#通过切片反转,不会修改列表本身
# l = [1,2,3,4,5,6,7]
# res = l[::-1]
# print(res)
posted @ 2020-05-25 16:16  春天的风情  阅读(286)  评论(0编辑  收藏  举报