博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day 5 dict + set(初识)
阅读量:4922 次
发布时间:2019-06-11

本文共 2527 字,大约阅读时间需要 8 分钟。

字典

字典的键:  字典键的变化顺序    3.5之前字典是无序的    3.6开始字典是看起来有序    3.7开始正式变成有序的

 

  ·增

# dic['li'] = ["a","b","c"]# print(dic)# setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。# dic.setdefault('k','v')# print(dic)  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}# dic.setdefault('k','v1')  # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}# print(dic)
View Code

 

  ·删

# dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值# print(dic_pop)# del dic["name"]  # 没有返回值。# print(dic)# dic_pop1 = dic.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回# print(dic_pop1)  # ('name','jin')# dic_clear = dic.clear()  # 清空字典# print(dic,dic_clear)  # {} Nonedel dicdel dic['name']   #删除的是键值对  del不可以切片删除

 

      ·改

View Code

 

# 改#dic['name'] = '重新赋值'# dic = {"name":"jin","age":18,"sex":"male"}# dic2 = {"name":"alex","weight":75}# dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中# print(dic2)
View Code

 

   ·查

# value1 = dic["name"]  # 没有会报错# print(value1)## value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值# print(value2)

 

  

字典方法:  

# item = dic.items()# print(item,type(item))  # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) 
# 这个类型就是dict_items类型,可迭代的# keys = dic.keys()# print(keys,type(keys)) # dict_keys(['sex', 'age', 'name'])
# values = dic.values()# print(values,type(values)) # dict_values(['male', 18, 'jin'])
同上

 

字典的循环:   

# dic = {"name":"jin","age":18,"sex":"male"}# for key in dic:#     print(key)# for item in dic.items():#     print(item)# for key,value in dic.items():#     print(key,value)  

 

字典的扩展

1.for循环:用户按照顺序循环可迭代对象的内容。msg = '老男孩python是全国范围内最好的python培训机构'for item in msg:    print(item)li = ['alex','银角','女神','egon','太白']for i in li:    print(i)dic = {
'name':'太白','age':18,'sex':'man'}for k,v in dic.items(): print(k,v)2.enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。li = ['alex','银角','女神','egon','太白']for i in enumerate(li): print(i)for index,name in enumerate(li,1): print(index,name)for index, name in enumerate(li, 100): # 起始位置默认是0,可更改 print(index, name)    3.range:指定范围,生成指定数字。for i in range(1,10): print(i)for i in range(1,10,2): # 步长 print(i)for i in range(10,1,-2): # 反向步长 print(i)

 

 

集合

 

  创建:    变量 = {1,2,3,……}注意:集合里面只可以放不可变数据(可哈希的)集合本身是可变的,所以不可以做字典的键。当然也可以将其转化成“frozenset”不可变类型增: add     #添加一个 update()  #迭代着添加删:  pop()    #随机删除  remove()    #删除指定元素  del set      #删除集合改:  无查:  for i in set1:

 

 

 

  

转载于:https://www.cnblogs.com/zsdbk/p/8623198.html

你可能感兴趣的文章
logistic softmax
查看>>
函数模拟sort快排
查看>>
WPF Knowledge Points - 默认视图(DefaultView),CollectionSourceView,CollectionView的区别
查看>>
C#开源项目大全
查看>>
docker 小技巧 docker network create br-name 指定IP地址
查看>>
decode函数
查看>>
通过jvm 查看死锁
查看>>
多线程(大量密集的I/O处理);多进程(大量密集并行计算);Scrapy(异步,协程)...
查看>>
rabbitmq route
查看>>
恢复为TrustedInstaller权限
查看>>
怎样利用细碎时间达到整体学习的效果
查看>>
C# 位数组
查看>>
当递归遇到synchronized
查看>>
HDU - 2141 : Can you find it?
查看>>
bzoj1093 [ZJOI2007]最大半联通子图 缩点 + 拓扑序
查看>>
《Java并发编程的艺术》之线程池(二)
查看>>
SCP注意事项
查看>>
英国NHS
查看>>
ScrollView嵌套GridView和ListView行高问题
查看>>
测试秒杀新版本3.5 stieserver cms
查看>>