zoukankan      html  css  js  c++  java
  • 04 : Python 列表,元组,字典,集合


    列表 list
    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

    names = ["4ZhangYang", "#!Guyun","xXiangPeng","jack","ChenRonghua","XuLiangchen"]

    print(names[0]) # 取下标0的值
    print(names[0],names[2])
    print(names[-2:]) # 倒数第二个取到结尾
    print(names[1:3])
    print(names[0:-1]) # 从下标0取到倒数第二个
    print(names[0:]) # 等价print(names[:]) 全部
    print(names[0:3]) # 等价print(names[:3]) 开始0取到第三个

    print(names[0:-1:2])
    print(names[::2]) # 后面的2是代表,每隔一个元素,就取一个

    for i in names:
    print(i)

    #扩展用法:对比a 和 b 的输出结果

    a = [1,2,3]
    b = a
    a[1] = 555
    #b = [1,555,3]
    print("list_a = ",a)
    print("list_b = ",b)

    #names = "ZhangYang Guyun Xiangpeng XuLiangChen"
    names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]

    name2 = copy.deepcopy(names) # 深度copy,完全的把names 复制给name2,修改names对name2无影响。
    #name2 = names.copy() # 浅浅copy,只copy第一层,修改names 的第二层元素值,会影响name2 的第二层的值
    #name2 = names # 直接复制,修改names,就会影响name2,指向的同一块地址。
    print(names)
    print(name2)
    names[2] = "向鹏"
    names[3][0] ="ALEXANDER" # 下标3 也是一个list,取下标3的第0个下标
    print(names)
    print(name2)

    # 列表的 --- 增 -- 删 -- 改 -- 查

    names.append("LeiHaidong")
    names.insert(1,"ChenRonghua")
    names.insert(3,"Xinzhiyu")
    names[2] ="XieDi"

    #delete
    names.remove("ChenRonghua")
    del names[1] # 等价 names.pop(1)
    del names #删除names, 就是不存在了,如果在使用print(names)打印就会报错
    print(names)
    print(names.index("XieDi"))
    print( names[names.index("XieDi")] )

    print(names.count("ChenRonghua"))
    names.clear() # 清空names里面的元素,注意区别和del names 的区别
    names.reverse()
    names.sort()
    print(names)

    names2 = [1,2,3,4]
    names.extend(names2)
    print(names,names2)


    #循环输出列表内容,在结尾添加指定的内容
    names2 = [1,2,3,4]
    for x in names2:
    print(x," ")
    print(" ")
    for x in [1, 2, 3]:
    print(x, end="1") # 输出的内容结尾添加1

    ###################################################################################################################
    字符串   

    name = "WOSHISHUI"
    name.capitalize() # 首字母大写,其它字母全部变小写
    name.casefold() # 大写全部变小写
    name.center(50,"-") # 输出 '---------------------WOSHISHUI----------------------'
    name.count('SHI') # 统计 SHI出现次数
    name.encode() # 将字符串编码成bytes格式
    name.endswith("Li") # 判断字符串是否以 Li结尾
    print("woshi shui".expandtabs(10)) # 输出'woshi shui', 将 转换成多长的空格
    print(name.find('A')) # 查找A,找到返回其索引, 找不到返回-1

    #####################################################################################################################
    元组     
    #Python 的元组与列表类似,不同之处在于元组的元素不能修改。
    #元组使用小括号,列表使用方括号。
    #元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    tup1 = ("Google", "Runoob", 1997, 2000)
    tup2 = (1, 2, 3, 4, 5, 6, 7)
    print("tup1[0]: ", tup1[0])
    print("tup2[1:5]: ", tup2[1:5])

    # 以下修改元组元素操作是非法的。
    # tup1[0] = 100

    # 创建一个新的元组
    tup3 = tup1 + tup2;
    print(tup3)
    print(len(tup3)) # 输出元组元素个数

    #删除元组 - 不能删除指定的下标,只能整个删除
    del tup1
    print ("删除后的元组 tup : ")
    #print (tup1)

    #------- 元素函数 -----------------
    tuple1 = ('Google', 'Runoob', 'Taobao') # 计算元组元素个数。
    print(len(tuple1))

    tuple1 = ('5', '4', '9') # 返回元组中元素最大值。
    print(max(tuple1))

    tuple1 = ('5', '4', '9') # 返回元组中元素最小值。
    print(min(tuple1))

    list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] # 将列表转换为元组。
    tuple1=tuple(list1)
    print(tuple1)
    #####################################################################################################################
    字典 
    #字典是另一种可变容器模型,且可存储任意类型对象。
    #字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
    #d = {key1 : value1, key2 : value2 }

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    print("dict['Name']: ", dict['Name'])
    print("dict['Age']: ", dict['Age'])

    #------ 修改字典元素
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict['Name'] = "test" # 添加信息
    dict['Age'] = 8 # 更新 Age

    print("dict['Name']: ", dict['Name'])
    print("dict['Age']: ", dict['Age'])

    # ----- 删除字典元素
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

    del dict['Name'] # 删除键 'Name'
    print(dict)
    dict.clear() # 清空字典
    print(dict)
    del dict # 删除字典
    print(dict["Name"])

    # ------字典函数
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    len(dict) #计算字典元素个数,即键的总数。
    str(dict) #输出字典,以可打印的字符串表示。
    type(dict) #返回输入的变量类型,如果变量是字典就返回字典类型。

    1 radiansdict.clear()
    删除字典内所有元素
    2 radiansdict.copy()
    返回一个字典的浅复制
    3 radiansdict.fromkeys()
    创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    4 radiansdict.get(key, default=None)
    返回指定键的值,如果值不在字典中返回default值
    5 key in dict
    如果键在字典dict里返回true,否则返回false
    6 radiansdict.items()
    以列表返回可遍历的(键, 值) 元组数组
    7 radiansdict.keys()
    返回一个迭代器,可以使用 list() 来转换为列表
    8 radiansdict.setdefault(key, default=None)
    和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
    9 radiansdict.update(dict2)
    把字典dict2的键/值对更新到dict里
    10 radiansdict.values()
    返回一个迭代器,可以使用 list() 来转换为列表
    11 pop(key[,default])
    删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    12 popitem()
    随机返回并删除字典中的最后一对键和值。
    #####################################################################################################################
    集合 
    #集合(set)是一个无序的不重复元素序列。
    #可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
    #它的主要作用如下:
    #去重,把一个列表变成集合,就自动去重了
    #关系测试,测试两组数据之前的交集、差集、并集等关系

    basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    print(basket) ##这里演示的是去重功能,只会输出没有重复的元素
    #print("orange" in basket) # 判断元素是否在集合内 返回true 、 false

    #s = set([3,5,9,10]) # 创建一个数值集合
    #s = set((3,5,9,10)) # 创建一个数值集合
    s = set({3,5,9,10}) # 创建一个数值集合
    print(s)

    t = set("Hello") # 创建一个唯一字符的集合
    print(t)
    print(type(t))
    a = t | s # t 和 s的并集
    print("a = ",a)
    b = t & s # t 和 s的交集
    print("b = ",b)
    c = t - s # 求差集(项在t中,但不在s中)
    print("c = ",c)
    d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
    print("d = ",d)

    s.add(1) # 添加一个元素
    print(s)
    s.update([1,2,'3xx']) # 添加多个元素
    print(s)
    #s.remove("10sdsd") # 移除一个元素,不存在会发生报错
    print(s)
    s.discard("xxxx") # 移除一个元素,不存在不会报错
    print(s)
    s.pop() # 随机 移除一个元素
    print(s)
    print(len(s)) # 输出 集合元素个数
    s.clear() # 清空
    print(s)
    s.copy() # 浅复制

    print( "x" in s) # 查找x 是否在s 集合里面,存在返回ture
    print( "x" not in s) # 查找x 不在s 集合里面,不在返回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() 给集合添加元素
    ---
    len(s) # set 的长度
    x in s # 测试 x 是否是 s 的成员
    x not in s # 测试 x 是否不是 s 的成员
    s.issubset(t) # s <= t 测试是否 s 中的每一个元素都在 t 中
    s.issuperset(t) # s >= t 测试是否 t 中的每一个元素都在 s 中
    s.union(t) # s | t 返回一个新的 set 包含 s 和 t 中的每一个元素
    s.intersection(t) # s & t 返回一个新的 set 包含 s 和 t 中的公共元素
    s.difference(t) # s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素
    s.symmetric_difference(t) # s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素
    s.copy() # 返回 set “s”的一个浅复制



  • 相关阅读:
    Python—设计模式
    Python—操作系统和多线程
    thin mission 2021 11 3
    搜索
    c++ 调试
    Lecture--words families
    高数--积分
    thin mission 2021.11.2
    tiny mission 2021.11.1
    zlib使用心得
  • 原文地址:https://www.cnblogs.com/jim-xu/p/11687181.html
Copyright © 2011-2022 走看看