资讯专栏INFORMATION COLUMN

python_bomb----字典(dict)

dinfer / 2096人阅读

摘要:定义字典存放键值对,且值可以是任意的数据类型集合常用方法第一个参数可以是列表元组字符串集合,将参数中每一个值作为值并且所有值都相同生成个银行卡号,默认密码为特性字典不支持索引,切片,重复,连接。

定义

字典存放 key - value(键值对),且value值可以是任意的数据类型

m ={"sheen":[100,99,100],"star":[97,100,100]}
print(m,type(m))

{"sheen": [100, 99, 100], "star": [97, 100, 100]} 

集合常用方法fromkeys:
第一个参数可以是列表/元组/字符串/集合,将参数中每一个值作为key值
并且所有value值都相同

#生成8个银行卡号,默认密码为"000000"
cards = []
for i in range(8):
    card = "6217 0042 %.3d" % (i)
    cards.append(card)
print(cards)
print({}.fromkeys(cards, "000000"))

{"6217 0042 000": "000000", "6217 0042 001": "000000", "6217 0042 002": "000000", "6217 0042 003": "000000", "6217 0042 004": "000000", "6217 0042 005": "000000", "6217 0042 006": "000000", "6217 0042 007": "000000"}
特性

字典不支持index索引,切片,重复,连接。
索引必须使用关键字
成员操作符只对关键字可用

m=dict(a=3,b=5,c=7)
print("a" in  m)
print(3 in m)

True
False

for遍历

for循环: 默认遍历字典的key值;

d=dict(a=3,b=5,c=7)
for i in d:
    print(i)
for i,v in enumerate(d):
    print(i, "-----", v)
    
a
b
c
0 ----- a
1 ----- b
2 ----- c

增加

直接添加

d=dict(a=3,b=5,c=7)
d["m"]=0
print(d)

{"a": 3, "b": 5, "c": 7, "m": 0}

update()

如果key值存在,则更新value值
如果key值不存在,则添加key-value对

d=dict(a=3,b=5,c=7)
d.update(a=0)
d.update(d=9)
print(d)

{"a": 0, "b": 5, "c": 7, "d": 9}

setdefault

如果key值已经存在, 不做修改;
如果key值不存在, 添加key-value值;默认情况下value值为None

d.setdefault("n",4)
d.setdefault("b",100)
print(d)

{"a": 0, "b": 5, "c": 7, "m": 0, "d": 9, "n": 4}

删除

pop()

弹出指定的key-value对

d=dict(a=3,b=5,c=7)
d.pop("a")
print(d)

{"b": 5, "c": 7}

popitem()

随机删除key-value对

d={"b": 5, "c": 7}
d.popitem()
print(d)
{"b": 5}

del

随机删除key-value对

d=dict(a=3,b=5,c=7,m=11,n=12)
del d["b"]
print(d)
{"a": 3, "c": 7, "m": 11, "n": 12}

clear

清空字典

d={"a": 3, "c": 7, "m": 11, "n": 12}
d.clear()
print(d)

{}

查看与修改

services={"http":80,"ssh":22,"ftp":21}

查看字典里面所有的key值

print(services.keys())

dict_keys(["http", "ssh", "ftp"])

查看字典里面所有的value值

print(services.values())

dict_values([80, 22, 21])

查看字典里面所有的key-value值

print(services.items())

dict_items([("http", 80), ("ssh", 22), ("ftp", 21)])

遍历

for k,v in services.items(): # k,v = ("http", 80)
    print(k , "--->", v)

for k in services:
    print(k, "--->", services[k])
    
    
http ---> 80
ssh ---> 22
ftp ---> 21
http ---> 80
ssh ---> 22
ftp ---> 21    

查看指定key对应的value值, 注意: key不存在, 就会报错

users={"root":"redhat","studnet":"studnet","sheen":"star"}
print(users["root"])
#print(users["alex"])#报错,KeyError: "alex"

redhat

get方法获取指定key值对应的value值

如果key值存在, 返回对应的value值; 如果key值不存在, 默认返回None, 如果需要指定返回的值, 传值即可;

users={"root":"redhat","studnet":"studnet","sheen":"star"}
print(users.get("studnet"))
print(users.get("alex"))

studnet
None

实现switch

针对不同的case,语句执行内容不同

grade = "C"
d = {
    "A":"优秀",
    "B":"良好",
    "C":"合格"
}
# if grade in d:
#     print(d[grade])
# else:
#     print("error")

print(d.get(grade,"error"))


合格

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42226.html

相关文章

  • python_bomb----集合

    摘要:集合定义集合里面的元素是不可重复的如何定义一个空集合默认情况是,称为字典定义一个空集合集合应用列表去重集合特性集合支持的特性只有成员操作符。 集合定义 集合里面的元素是不可重复的; s={1,1,2,3,4,2,2} print(s) {1, 2, 3, 4} 如何定义一个空集合? s1 = {} # 默认情况是dict, 称为字典 print(s1,type(s1)) {} 定...

    zacklee 评论0 收藏0
  • python_bomb----数据类型总结

    摘要:数据类型有数字,字符串,值,列表,元组,集合,字典可变与不可变可变与不可变的区别对这个数据类型进行增删改差时,数据存储地址不变,不会开辟新的空间可变不开辟新空间不可变会改变内存地址不可变数据类型数字,字符串,值,元组可变数据类型列表,集合, 数据类型 有:数字,字符串,bool值,列表,元组,集合,字典 可变与不可变 可变与不可变的区别:对这个数据类型进行增删改差时,数据存储地址不变,...

    dkzwm 评论0 收藏0
  • python_bomb----函数高级特性(生成器)

    迭代 可以通过 for 循环来遍历 list 或 tuple,这种遍历我们称为迭代(Iteration)只要是可迭代对象,都可以迭代,比如字典默认情况下,字典迭代的是key值如何让判断一个类型是否可迭代 from collections import Iterable #导入collections模块的Iterable类型判断方法 print(isinstance({abc:1},Itera...

    JouyPub 评论0 收藏0
  • python_bomb----高阶函数

    摘要:高阶函数实参是一个函数名函数的返回值是一个函数传递的参数包含函数名。内置高阶函数函数函数接收两个参数一个是函数一个是序列将传入的函数依次作用到序列的每个元素并把结果作为新的返回。 高阶函数 实参是一个函数名 函数的返回值是一个函数 print(abs(-10)) f = abs print(f(-10)) #传递的参数包含函数名。 def myfun(x,y,fun): ...

    Pocher 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<