python中的 元组 字典 和集合

来源:互联网 发布:设备管理相关软件 编辑:程序博客网 时间:2024/05/21 00:52

元组:不可变列表

字典:键值对应关系

集合: 不可重复列表 可变类型

#!/usr/bin/env python# -*- coding:utf-8 -*-#Author:xp#blog_url: http://blog.csdn.net/wuxingpu5/article/details/71209731#----------------------------------元组------------------------#元组和列表的功能一样 区别在于元组不可变. 使用小括号定义#定义user_tupe = ('li','zhou','wu','zheng','wang')#统计v = user_tupe.count('li')print(v)#获取值的第一个索引位置v = user_tupe.index('wu')print(v)#也可以for循环取出每一个值v = user_tupe[0]v2 = user_tupe[0:2]print(v)print(v2)#元组默认不可以修改 但是元组可以嵌套 嵌套列表中的值可以修改user_tupe = (1,2,3,4,[5,6,7])user_tupe[4][1] = 'w'print(user_tupe)#命名单个元组要加,号在末尾user_tupe = (1,)#----------------------------------字典------------------------#字典定义为键值对#定义及清空dic = {'k1':'v1', 'k2':'v2'}dic.clear()#浅拷贝dic = {'k1':'v1', 'k2':'v2'}v = dic.copy()print(v)#根据key获取指定的值  不存在不报错  默认返回None 示例自定义返回值为222v = dic.get('k3',222)print(v)#通过key获取 无效的key会报错v = dic['k1']print(v)#删除并获取对应的valuev = dic.pop('k1')print(v)#随机删除并获取到删除的键值v = dic.popitem()print(v)#获取键值print(v[0],v[1])#随机删除并分别获取键值dic = {'k1':'v1', 'k2':'v2'}k,v = dic.popitem()print(k,v)#增加  如果不存在则不操作dic = {'k1':'v1', 'k2':'v2'}dic.setdefault('k3','v3')print(dic)#批量增加dic.update({'k4':'v4','k5':'v5'})print(dic)#循环生成字典 从键值val = dict.fromkeys(['k1', 'k3', 'k2'], 123)print(val)#更改值val['k1'] = 333print(val)dic = dict.fromkeys([1,2,3],[1,])print(dic)#{1: [1], 2: [1], 3: [1]}dic[1].append(222)print(dic)#结果为:  {1: [1, 222], 2: [1, 222], 3: [1, 222]}#因为内存地址一样#如果值是相同 并且可变类型(列表) 则容易出现此问题#字典可以嵌套 但是key不可以使用列表 key是不可变的 不可以用列表 但是可以用元组dic = {    "jk1": 'vx1',    'xx': 'xl',    (1, 2): 3,}#布尔值可以作为key 数字可以v = int(True)print(v)#值为1#定义字典时不可以同时使用True和1 他们的值是相同的#True 1#False 0#Python中除了''、""、0、()、[]、{}、None为False之外,其他的都是True。#----------------------------------集合------------------------#集合即为不可重复的列表 可变类型s1 = {'zhao', 'sun', 'li', 'zhou'}s2 = {'zhao', 'qian',  'li', 'zhou'}#s1中有  s2中没有v = s1.difference(s2)print(v)#s2中有  s1中没有v = s2.difference(s1)print(v)#s1多于s2的  s2多于s1的v = s1.symmetric_difference(s2)print(v)#交集v = s1.intersection(s2)#并集v = s2.union(s1)#移除print(s1)s1.discard('li')print(s1)#更新s1.update({'su'})print(s1)#拆分字符串更新到集合s1.update('sun')print(s1)#同样支持for循环取每一个值  但是不支持索引 不支持嵌套列表,字典,集合 但是支持嵌套元组#集合其他方法#intersection_update 获取交集并重新复制#isdisjoint 判断是否有交集#issubset 是否是子集#issuperset 是否是父集#pop取值并删除#remove 直接删除#


0 0
原创粉丝点击