ArcPy基础之字典(二)


一、编译环境和编译器

ArcGIS10.6:Python2.7.14 32-bit
编译器:Visual Studio Code

二、字典

1.定义字典,获取字典关键字、值、对象

代码如下(示例):

# encoding=utf-8

#定义字典{key:value}
dicA={"name":"Xiao Ming","age":14,"high":167,"other":""}
print(dicA)
print(len(dicA))#打印字典长度
#获取关键字、值、对象
print(dicA.keys())#打印字典关键字
print(type(dicA.keys()))#字典关键字类型,list

print(dicA.values())#打印值
print(type(dicA.values()))#字典值类型,list

print(dicA.items())#打印对象
print(type(dicA.items()))#字典对象类型,list
print("----------0")

#通过循环获取,以获取对象为例
for item in dicA.items():
    print(item)

print("----------1")

#根据关键字获取值
print(dicA.get("name"))#根据关键字”name"获取值Xiao Ming
dicA.get("name")#当获取的关键字在原字典中不存在时,get()会返回默认值,但不改变原字典。
print(dicA)

print(dicA.setdefault('name'))#根据关键字”name"获取名字Xiao Ming
dicA.setdefault('grades')#当获取的关键字在原字典中不存在时,setdefaul()t会返回默认值None并更新字典
print(dicA)

打印结果:

{'high': 167, 'age': 14, 'other': '', 'name': 'Xiao Ming'}
4

['high', 'age', 'other', 'name']
<type 'list'>
[167, 14, '', 'Xiao Ming']
<type 'list'>
[('high', 167), ('age', 14), ('other', ''), ('name', 'Xiao Ming')]
<type 'list'>
----------0
('high', 167)
('age', 14)
('other', '')
('name', 'Xiao Ming')
----------1
Xiao Ming
{'high': 167, 'age': 14, 'other': '', 'name': 'Xiao Ming'}
Xiao Ming
{'high': 167, 'age': 14, 'other': '', 'grades': None, 'name': 'Xiao Ming'}

2.字典的操作:增、删、改、查、复制和创建

dicA={'high': 167, 'age': 14, 'other': '', 'grades': None, 'name': 'Xiao Ming'}
#字典的操作
#增
dicA["sex"]="boy"#用[]直接添加字典关键字和值,且增加在字典尾部
print(dicA)#打印增加后字典

dicB={"class":1,34:"ge"}
dicA.update(dicB)#将dicB更新到dicA中
print(dicA)#打印更新后结果
print("----------2")

#删
del dicA["other"]#通过del删除关键词和值
print(dicA)#打印删除后字典

dicA.pop("age")#索引并删除关键字为“age"的键值对
print(dicA)#打印pop后字典

dicA.popitem()#索引并删除字典最新加入的键值对
print(dicA)#打印popitem后结果
print("----------3")

#改
dicA["sex"]="girl"#通过关键字将性别改为girl,它会覆盖原来值
print(dicA)#打印改后字典
print("----------4")

#查
print dicA.has_key("sex")#查询字典中是否存在关键字sex
print("----------5")

#字典的复制
print(dicA.copy())#打印复制后字典
print("----------6")

#创建新字典
dic1={}#新建一个空的字典
dic2=dic1.fromkeys(("hair","leg"),"long")#对空的字典添加"hair"和“leg"两个关键值,并将值都赋为long
print(dic2)#打印新建字典

#清除
dic2.clear()#清除dic2
print(dic2)

打印结果:

{'name': 'Xiao Ming', 'age': 14, 'sex': 'boy', 'high': 167, 'grades': None, 'other': ''}
{34: 'ge', 'name': 'Xiao Ming', 'age': 14, 'sex': 'boy', 'high': 167, 'grades': None, 'other': '', 'class': 1}
----------2
{34: 'ge', 'name': 'Xiao Ming', 'age': 14, 'sex': 'boy', 'high': 167, 'grades': None, 'class': 1}
{34: 'ge', 'name': 'Xiao Ming', 'sex': 'boy', 'high': 167, 'grades': None, 'class': 1}
{'name': 'Xiao Ming', 'sex': 'boy', 'high': 167, 'grades': None, 'class': 1}
----------3
{'name': 'Xiao Ming', 'sex': 'girl', 'high': 167, 'grades': None, 'class': 1}
----------4
True
----------5
{'high': 167, 'class': 1, 'grades': None, 'name': 'Xiao Ming', 'sex': 'girl'}
----------6
{'hair': 'long', 'leg': 'long'}
{}
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值