不会python高级变量?一文带你完成华丽的逆转

前言

前几天写了一篇关于python高级语法的文章,青铜到王者,这些python技巧一定会用上

有读者私信说:刚开始学习python,连列表、元组、字典、集合都还没搞清,更别提进阶高级用法了,这样还有救吗?要不要放弃?

没关系,今天就来聊聊python中的列表、元组、字典、集合这些高级变量的用法,请认真听讲。
在这里插入图片描述

概念

列表(list):是一组任意类型的值,按照一定顺序组合而成的,可变的序列,支持索引、切片、合并、删除等等操作,它们都是在原处进行修改列表。顺序型容器对象,支持追加操作,可变的。

元组(tuple):带了紧箍咒的列表,元组本身不可变数据类型,没有增删改,但可以间接性的修改,元组内可以存储任意数据类型。元组不可变,不允许插入操作。元组的元素由逗号隔开。

集合(set):集合不允许出现重复元素,而且集合要求同类元素。

字典(dict):是另一种可变容器模型,且可存储任意类型对象。是键值对方式存储数据的数据结构。字典结构是一个哈希映射,值对应键。

Python 中,所有 非数字型变量 都支持以下特点:
1. 都是一个 序列 sequence,也可以理解为 容器
2. 取值 []
3. 遍历 for in
4. 计算长度最大/最小值比较删除
5. 链接 +重复 *
6. 切片

一、列表(List)

  • 常见的操作主要包括:增加删除修改查询
序号 分类 关键字 / 函数 / 方法 说明
1 增加 列表.insert(索引, 数据) 在指定位置插入数据
列表.append(数据) 在末尾追加数据
列表.extend(列表2) 将列表2 的数据追加到列表
2 修改 列表[索引] = 数据 修改指定索引的数据
3 删除 del 列表[索引] 删除指定索引的数据
列表.remove[数据] 删除第一个出现的指定数据
列表.pop 删除末尾数据(返回值是删除的数据)
列表.pop(索引) 删除指定索引数据 (返回值是删除的数据)
列表.clear 清空列表
4 统计 len(列表) 列表长度
列表.count(数据) 数据在列表中出现的次数
5 排序 列表.sort() 升序排序
列表.sort(reverse=True) 降序排序
列表.reverse() 逆序、反转
  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来。
list = [] # 创建空列表
list = ['physics', 'chemistry', 1997, 2000]
  • 访问列表中的值
print( list[0] ) # physics
print( list[4] ) # 2000
print( list[-1] ) # 2000
print(nums[0:2]) # ['physics', 'chemistry']
print (list[1:-2]) # ['chemistry']
  • 更新列表
list[2] = 2001
print(list)
# ['physics', 'chemistry', 2001, 2000]
list.append("哈哈哈") # 追加元素
print(list)
# ['physics', 'chemistry', 2001, 2000, '哈哈哈']
  • 删除列表元素
del list[2]
print(list)
#['physics', 'chemistry', '哈哈哈']
  • 列表脚本操作符:列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
list = [1, 2, 3] + [4, 5, 6]
print(list)
# [1, 2, 3, 4, 5, 6]

list = [2,"你啊"]*3
print(list)
# [2, '你啊', 2, '你啊', 2, '你啊']
  • 嵌套列表
list= [[1,2,[3,4]],["q",["你来啊"],"f"],4,5]
print(list[1][1][0])
# 你来啊
  • 遍历列表元素
for i in ["嗨","你来呀","2"]:
  print(i)
  • 列表函数&方法
len(list) #列表元素个数
max(list) #返回列表元素最大值
list(seq) #将元组转换为列表
list.count(obj) #统计某个元素在列表中出现的次数
list.append(obj) #在列表末尾添加新的对象
list.extend(seq)#在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) #从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) #将对象插入列表
list.pop([index=-1]) #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
del list[n] #删除第n个元素
list.remove(obj) #移除列表中某个值的第一个匹配项
list.reverse() #反向列表中元素
list.sort( key=None, reverse=False) #对原列表进行排序
list.clear() #清空列表
list.copy() #复制列表

二、元组(tuple)

  • Tuple(元组)与列表类似,不同之处在于元组的 元素不能修改

    • 元组 表示多个元素组成的序列
    • 元组Python 开发中,有特定的应用场景
  • 用于存储 一串 信息数据 之间使用 , 分隔

  • 元组用 () 定义

  • 元组的 索引0 开始

    • 索引 就是数据在 元组 中的位置编号
  • 创建元组:元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

t1 = ()
t2 = ("你来呀",)
t3 = ("咦","你来呀")
t4 = ("咦","你来呀",("啊",("哈哈")))
  • 访问元组
print(t4[2][1][0])
print(t4[1:2][0])
# 哈
# 你来呀
  • 修改元组:元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
# (12, 34.56, 'abc', 'xyz')
tup1 = (12, 34.56)
tup1 = list(tup1)
tup1[0] = 100
tup1 = (tup1)
print(tup1)
# [100, 34.56]
  • 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
del tup1
  • 遍历元组
for i in ("嗨","你来呀","2"):
  print(i)
  • 元组运算符
t = (1,2,3)+(4,5,6)
print(t)
# (1,2,3,4,5,6)

t = (2,"你啊")*3
print(t)
# (2, '你啊', 2, '你啊', 2, '你啊')
  • 元组内置函数
len(tuple)#计算元组元素个数。
max(tuple)#返回元组中元素最大值。
min(tuple)#返回元组中元素最小值。
tuple(iterable)#将可迭代系列转换为元组。

三、字典(dict)

字典的格式:d = {key1 : value1, key2 : value2, key3 : value3 } #键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {}中。

  • 创建字典,键必须是唯一的,但值则不必。
xiaoming = {
    
    "name": "小明",
            "age": 18,
            "gender": True,
            "height": 1.75}

在这里插入图片描述

  • 访问字典里的值
print(dict1["jj"])
# 27
  • 修改字典
dict1={
    
    "xx":26,"jj":27}
dict1["jj"] = 25 #更新
dict1["yy"] = 28 #添加
  • 删除字典元素
dict1={
    
    "xx":26,"jj":27}
dict1.clear()# 清空字典
del dict1 # 删除字典
del dict1['xx'] # 删除键 'xx'
  • 字典内置函数&方法
#字典包含了以下内置函数:
len(dict)#计算字典元素个数,即键的总数。 
str(dict)#输出字典,以可打印的字符串表示。
type(variable)#返回输入的变量类型,如果变量是字典就返回字典类型。

#字典包含了以下内置方法:
dict.clear()#删除字典内所有元素。
dict.copy()#返回一个字典的浅复制。
dict.fromkeys(seq[, value]) #创建一个新字典,以序列 seq 中元素做字典的。键,value为字典所有键对应的初始值,默认是空值。
dict.get(key, default=None)#返回指定键的值,如果键不在字典中返回default 设置的默认值。
dict.setdefault(key, default=None)#和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
key in dict #如果键在字典dict里返回true,否则返回false。
dict.items()#以列表返回可遍历的(键, 值) 元组数组
dict.keys()#返回一个迭代器,可以使用 list() 来转换为列表
dict.values()#返回一个迭代器,可以使用 list() 来转换为列表
dict.update(dict2)#把字典dict2的键/值对更新到dict里
pop(key[,default])#删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
dict.popitem() #字典 popitem() 方法随机返回并删除字典中的最后一对键和值。如果字典已经为空,却调用了此方法,就报出KeyError异常。
  • 字典键的特性
    • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
    • 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

四、集合(set)

  • 创建集合:可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
a=set("哈哈","你来啊")
b={
    
    "啥","不来"}
c = {
    
    x for x in 'abracadabra' if x not in 'abc'}
  • 集合添加元素
a.add( x )#添加元素,存在则替换
a.update( x ) #添加元素,x可以是字典或列表或单个元素或元组
  • 集合移除元素
a.remove( x )#移除元素,如果不存在会报错
a.discard( x )#移除元素,不存在也不会报错
a.pop() #随机移除一个元素
a.clear()#清空集合中的元素
  • 集合元素个数
s = {
    
    1,2,3,4,"开始啦","结束啦"}
len(s)
  • 判断元素是否在集合中存在
"a" in set(("a","b","c")) 
#True
  • 集合内置方法
#方法 #描述
add() #为集合添加元素
clear() #移除集合中的所有元素
copy() #拷贝一个集合
difference() #返回多个集合的差集
difference_update() #移除集合中的元素,该元素在指定的集合也存在。
discard() #删除集合中指定的元素
intersection() #返回集合的交集
intersection_update() #返回集合的交集。
isdisjoint() #判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() #判断指定集合是否为该方法参数集合的子集。
issuperset() #判断该方法的参数集合是否为指定集合的子集
pop() #随机移除元素
remove() #移除指定元素
symmetric_difference() #返回两个集合中不重复的元素集合。
symmetric_difference_update() #移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() #返回两个集合的并集
update() #给集合添加元素

五、区别

在这里插入图片描述
好了,今天就到这里,明天我们继续努力!
在这里插入图片描述

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

Dragon少年 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

猜你喜欢

转载自blog.csdn.net/hhladminhhl/article/details/117620437