python 列表/字典/集合的方法
列表:
# -*- coding: utf-8 -*- import copy names = ["aa","bb","cc","dd",] ''' 查询 ''' #切片 print(names[1:3]) # 取最后一个元素 print(names[-1]) #取 第二个元素之后的所有元素 print(names[2:]) #每隔一个元素取一个 print("间隔取值:", names[::2]) ''' 添加 ''' #追加 一个元素 names.append("ee") print(names) # 插入一个元素 names.insert(2, "ff") print(names) ''' 删除 ''' # 通过value 删除 names.remove("dd") print("delete",names) # 通过下标删除 del names[0] print("delete index :",names) # 删除最后一个元素,也可指定下标删除指定下标的元素 names.pop() print("delete pop",names) ''' 修改 ''' names[2] = "gg" print(names) #获取index print(names.index("bb" )) names.append("ee") names.append("ee") #获取一个元素在列表中的个数 print("ee 的数量:",names.count("ee")) # 反转列表 names.reverse() print(names) # 排序 names.sort() print(names) # 合并连个list name2 = [1,2,3] names.extend(name2) print(names) #copy 3种方法 test = ["qq","ww","ee","rr",[1,2,3]] test1 = test.copy() test2 = test[:] test3 = list(test) print("test2 :",test2) #修改 test 列表中子列表的值 test[4][0]=5 print("test2 :",test2) ''' 我们看到,当修改test 子列表的值以后,test2的子列表的值也发生了改变, 这是因为test 的子列表实际存储的是子列表在内存中的地址,而test与test2 指向同一个地址,当地址的数据发送改变, test2 的数据也发生了改变 浅copy 有的场景非常有用,比如 有一瓶水,两个人喝,两个人消耗同一瓶水,但是两个人的名字不一样: source = [name,['water',100]] p1 = source.copy() p2 = source.copy() p1[0] = "小明" p2[0]="旺财" #假如小明喝了10单位的 水 p1[1][1] = 90 #旺财看水的时候就剩90 单位的水了 ''' #完全copy 要导入 copy ,使用下边的方法 test2 = copy.deepcopy(test) test[4][1] = 77 print(test) print(test2) #获取 列表的长度 print(len(names)) #删除 name2 这个列表 #del name2 #print(name2)
字典:
# -*- coding: utf-8 -*- ''' 1.字典是无序的 2.字典的key是唯一的,所以可以去重 ''' #定义字典 info = { "stu1":"xiaoQiang", "stu2":"wangcai", "stu3":"wangwang", } print("1 :",info) #修改 info["stu1"]="小强" print("modify :",info) #update方法是将两个字典进行合并,如果有重复的key,则会使用update 传的字典的值进行更新 b={ "stu1":"aa", "stu22":"bb", "stu23":"cc", } info.update(b) print("update :",info) #删除 的两种方法 del info["stu2"] print("3 :",info) info.pop("stu3") print("4 :",info) info = { "stu1":"xiaoQiang", "stu2":"wangcai", "stu3":"wangwang", } #遍历 for k in info: print(k," ",info[k]) #获取 print("5 ",info.get("stu1")) #获取所有的 values print(info.values()) #获取所有的keys print(info.keys()) #将字典转换成列表 print(info.items()) #初始化一个新的字典 结果为{8: 'test', 9: 'test', 7: 'test'} c=dict.fromkeys([7,8,9],"test") print(c)
集合:
# -*- coding: utf-8 -*- ''' 1.集合中没有重复的数据,可以去重 2.集合是无序的 ''' list =[1,1,9,6,8,7,5,5,4] list_1 = set(list) print(list_1) list_2 = set([1,6,7,8,12,3,56]) #获取交集 结果 {8, 1, 6, 7} print("交集:") print(list_1.intersection(list_2)) print(list_1 & list_2) #并集 , 结果 {1, 3, 4, 5, 6, 7, 8, 9, 12, 56} print("并集:") print(list_1.union(list_2)) print(list_1 | list_2) #差集, 结果{9, 4, 5} print("差集:") print(list_1.difference(list_2)) print(list_1-list_2) #子集 结果为 false print(list_1.issubset(list_2)) #获取两个集合中没有重叠的部分 {3, 4, 5, 9, 12, 56} print(list_1.symmetric_difference(list_2)) print(list_1 ^ list_2) #没有交集返回true print(list_1.isdisjoint(list_2)) #添加一个元素, 结果 {1, 4, 5, 6, 7, 8, 9, 22} list_1.add(22) print(list_1) list_1.remove(22) print(list_1) #获取集合长度 print(len(list_1)) #检查x是否是集合的成员 结果为true , 列表集合字符串都可以用这个方法 x=5 print(x in list_1) #检查x是否不是集合的成员 结果为false print(x not in list_1) #删除集合中的一个元素,如果元素不存在不会报错而remove 会报错 list_1.discard("a")
posted on 2017-09-13 14:17 gaizhongfeng 阅读(217) 评论(0) 编辑 收藏 举报