首页 > 编程语言 > 详细

Python语法学习记录之tuple该如何使用?

时间:2019-09-06 18:12:23      阅读:112      评论:0      收藏:0      [点我收藏+]

一、介绍

dict 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明:

下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。

每一个元素是pair,包含keyvalue两部分。keyIntegerstring类型,value 是任意类型。

键是唯一的,字典只认最后一个赋的键值。

不允许同一个键出现两次。创建时如果同一个键被赋值两次

二、字典初始化

1、普通赋值方法

print("===="*5,"dict init")

dic1 = {‘a‘: 100, ‘b‘:‘boy‘, ‘c‘:[‘o‘, ‘p‘, ‘q‘]}

print(type(dic1))

print("dic1:",dic1)

#可以直接增加一个元素,如果同名,则会改变原来的key的元素的值

dic1[‘d‘] = ‘dog‘

dic1[‘c‘] = 111               # 更新 ‘c‘

print("dic1:",dic1)

#键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

dic2 = {‘a‘: 1}

print ("dic2: ", dic2)

dic2 = {(‘a‘): 1}

print ("dic2: ", dic2)

dic2 = {(‘a‘,‘b‘): 1}

print ("dic2: ", dic2)

#dic2 = {[‘a‘]: 1}   #error

2、元组初始化方法

print("===="*5,"touple init")

tuple1 = (‘name‘, ‘age‘, ‘sex‘)

dict1 = dict.fromkeys(tuple1)

print ("新的字典为 : %s" %  str(dict1))

dict1 = dict.fromkeys(tuple1, 10)

print ("新的字典为 : %s" %  str(dict1))

dict1 = dict.fromkeys(tuple1, [1,2,3])

print ("新的字典为 : %s" %  str(dict1))

三、字典的引用遍历合并

print("===="*5,"key and value")

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

#输出所有的key

print("keys:",dic1.keys())

print(type(dic1.keys()))

#输出所有的value

print("values:",dic1.values())

print(type(dic1.values()))

#dict[key],多了个没有则返回缺省值,0[]没有则抛异常

print(dic1.get(‘a‘,"don not find"))

print(dic1.get(‘z‘,"don not find"))

print(dic1.get(‘z‘))

print(‘a‘ in dic1)

#遍历

for k in dic1:

    print(dic1.get(k))

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

print ("a 键的值为 : %s" %  dic1.setdefault(‘a‘, ‘ff‘))

print ("d 键的值为 : %s" %  dic1.setdefault(‘d‘, ‘ff‘))

print ("新字典为:", dic1)

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

print (type(dic1.items()))

print ("Value : %s" %  dic1.items())

for i,j in dic1.items():

    print(i, ":\t", j)

#计算字典元素个数,即键的总数

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

print("len:",len(dic1))

#输出字典,以可打印的字符串表示。

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

print("str:",str(dic1))

#增加合并字典

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

dic2 = {‘d‘:4,‘e‘:5,‘f‘:6}

dic1.update(dic2)   #不可以使用加法

print("dic1:",dic1)

四、字典的浅复制

#返回一个字典的浅复制

print,ThinkMarkets返佣http://www.kaifx.cn/broker/thinkmarkets.html("===="*5,"copy")

dic1 = {‘a‘:1,‘b‘:[2,3,4],‘c‘:3}

dic2 = dic1          # 浅拷贝: 引用对象

dic3 = dic1.copy()   # 浅拷贝: 深拷贝: 父对象(一级目录),子对象(二级目录)不拷贝,还是引用

# 修改 data 数据

dic1[‘a‘]=100

dic1[‘b‘].remove(2)

# 输出结果

print(dic1)

print(dic2)

print(dic3)#存在浅拷贝

五、字典删除

#删除

print("===="*5,"del")

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

dic2 = {‘d‘:4,‘e‘:5,‘f‘:6}

dic3 = {‘g‘:7,‘h‘:8,‘i‘:9}

dic2.clear() #清空字典 后为空字典  还属于有定义状态  删除字典内所有元素

print("dic2:",dic2)

print(type(dic2.keys()))

del dic3[‘g‘]

print("dic3:",dic3)#删除dic后属于没有定义状态会报错

del dic3

#print("dic3:",dic3)#删除dic后属于没有定义状态会报错

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

pop_obj=dic1.popitem()

print(pop_obj)   

print(dic1)

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

pop_obj=dic1.pop(‘a‘)

print(pop_obj)

print(dic1)

dic1 = {‘a‘:1,‘b‘:2,‘c‘:3}

pop_obj=dic1.pop(‘d‘,‘none‘)

print(pop_obj)

print(dic1)

六、python dict内存使用

def write_data_to_dict(key,data):

将数据放入字典

    if not data:

        return []

    d_dict[md5(key)] = data

    if md5(key) in d_dict.keys():

        d_dict.update(d_dict)

    return d_dict[md5(key)]

def get_data_from_dict(key):

从字典中取出数据

    if not key:

        return []

    if md5(key) in d_dict.keys():

        return d_dict.setdefault(md5(key), {})

Python语法学习记录之tuple该如何使用?

原文:https://www.cnblogs.com/benming/p/11477013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!