元组与字典

Posted 哟,写bug呢??

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元组与字典相关的知识,希望对你有一定的参考价值。

一、元组(tuple):

元组,跟列表很相识,最主要的区别就是它里面的元素不允许被修改。元组也是有序的,有切片操作。

#1、索引:

>>> t1=(a,b,c)
>>> print(t1[1])
b

#2、切片:

>>> t1=(a,b,c)
>>> print(t1[::-1])
(c, b, a)

#3、注意元组所谓的不能修改只是针对一级元素,如果一级元素是一个可变类型:即列表,字典,集合那么这个可变类型是可以更改的。

>>> t1=(a,b,[1,2,3])
>>> t1[2][0]=2
>>> t1
(a, b, [2, 2, 3]) 

 

二、字典(dictionary)

 

dict.fromkeys()

get()

pop(),popitem

setdefault()

update()

items() values()keys()

 

 

技术分享图片
#1、字典的生成:可以直接通过键值对赋值。也可以根据序列,创建字典,并指定统一的值。

>>> v = dict.fromkeys(["k1",123,"999"],123)

>>> v
{k1: 123, 123: 123, 999: 123}
>>>

#2、可以通过Key 获取值,Key不存在时,可以指定默认值

>>> dic = {"k1":v1,"k2":v2}

>>> print(dic["k1"])
v1

>>> print(dic.get("k1"))

v1
>>> print(dic.get("k43",100))
100

 #3,可以通过pop方法获得字典的元素:

dic = {
    "k1": v1,
    "k2": v2
}
若
v = dic.pop(k1,90)
print(dic,v)     #{‘k2‘: ‘v2‘} v1
若
v = dic.pop(k3,90)
print(dic,v)    #{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} 90
若
k,v = dic.popitem()
print(dic,k,v)    #{‘k1‘: ‘v1‘} k2 v2

#4、 设置值,
已存在,不设置,获取当前key对应的值
不存在,设置,获取当前key对应的值
dic = {
    "k1": v1,
    "k2": v2
}
v = dic.setdefault(k1,123)
print(dic,v)  #{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} v1

v=dic.setdefault(k3,v3)
print(dic,v)  #{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘v3‘} v3

#5、更新字典,已经存在的修改,不存在的增加
dic = {
    "k1": v1,
    "k2": v2
}
dic.update({k1: 111111,k3: 123})
print(dic)               #{‘k1‘: ‘111111‘, ‘k2‘: ‘v2‘, ‘k3‘: 123}
dic.update(k1=123,k3=345,k5="asdf") 
print(dic)          #{‘k1‘: 123, ‘k2‘: ‘v2‘, ‘k3‘: 345, ‘k5‘: ‘asdf‘}

#6 字典的values可以是任意值,但是字典的key不能是列表、字典、集合(元组可以)

#7字典是无序的,可以按照keys索引:
dici={k1:aaa,k2:bbb,k3:[1,2,3]}

print(dici[k1])
print(dici[k3][1])

#8字典指出del删除:
dici={k1:aaa,k2:bbb,k3:[1,2,3]}

del(dici[k1])
print(dici)    #{‘k2‘: ‘bbb‘, ‘k3‘: [1, 2, 3]}
#9 字典的keys,values,items.这三个返回的不是一个列表,而是一个可遍历的类型,不支持按下标索引(python2返回的可以)。
dici={k1:aaa,k2:bbb,k3:[1,2,3]}
print(dici.items())     #dict_items([(‘k1‘, ‘aaa‘), (‘k2‘, ‘bbb‘), (‘k3‘, [1, 2, 3])])
print(dici.keys())     #dict_keys([‘k1‘, ‘k2‘, ‘k3‘])
print(dici.values())   #dict_values([‘aaa‘, ‘bbb‘, [1, 2, 3]])
for i in dici.items():  
    print(i)         #(‘k1‘, ‘aaa‘)  (‘k2‘, ‘bbb‘) (‘k3‘, [1, 2, 3])
for  in dici.keys():
    print(i)       #k1 k2 k3
for i in dici.values():
    print(i)    #aaa bbb [1,2,3]
View Code

 



 


以上是关于元组与字典的主要内容,如果未能解决你的问题,请参考以下文章

Python元组与字典

元组与字典

python基本数据类型:元组与字典

python基本数据类型:元组与字典

python系列python元组与字典

第八篇基本数据类型之列表元组与字典