04 : Python 列表,元组,字典,集合

只愿长相守 提交于 2019-12-01 12:54:17
列表 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 = aa[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"#deletenames.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,"\n")print("\n")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\tshui".expandtabs(10))     # 输出'woshi      shui', 将\t转换成多长的空格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 tup1print ("删除后的元组 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  # 更新 Ageprint("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,否则返回false6  radiansdict.items()以列表返回可遍历的(键, 值) 元组数组7  radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表8  radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default9  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 集合里面,存在返回tureprint( "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”的一个浅复制  '''

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!