set和dict
dict属于mapping类型
from collections.abc import Mapping,MutableMapping
from collections.abc import __all__ # dict 属于Mapping类型 a = {}
print(isinstance(a,MutableMapping))
copy 浅拷贝
a = {
"liming1":{"company":"tencent1"},
"liming2":{"company":"tencent2"},
}
# clear
""" D.clear() -> None. Remove all items from D. """
# a.clear()
#copy 浅拷贝
""" D.copy() -> a shallow copy of D """
new_dict = a.copy()
new_dict['liming1']['company'] = 'tencent3'
print(a)
print(new_dict)
###########
{'liming1': {'company': 'tencent3'}, 'liming2': {'company': 'tencent2'}}
{'liming1': {'company': 'tencent3'}, 'liming2': {'company': 'tencent2'}}
fromkeys
# fromkeys
new_list = ['liming1','liming2'] new_dict = dict.fromkeys(new_list,{'company':'tencent'}) print(new_dict)
update
# update
new_dict.update({'lisa':{"company":"tencent2"}})
new_dict.update({'liming2':{"company":"tencent2"}})
new_dict.update(jenny={'company':'beijing'})
new_dict.update([('jenny',{'company':'shanghai'})])
print(new_dict)
defaultdict
__missing__ 很重要
from collections import defaultdict
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d = collections.defaultdict(list)
for k, v in s:
d[k].append(v) print(list(d.items())) s = 'mississippi'
d = defaultdict(int)
for k in s:
d[k] += 1
print(list(d.items()))#set 不可变集合 fronzenset 无序 不重复
set和frozenset 的区别
刚开始也讲了frozenset是不可变的,如果修改是报错的,那到底有什么用处呢
应用场景:一般dict 的key 是不变的,我们就可以用
那我们用代码证明下,set不会报错,frozenset 会报错.
s = {'a','b'}
s.add('c')
print(s)
f = frozenset('abcd') # 可以作为dict的key
print(f)
# 向set添加数据
another_set = set('fgh')
s.update(another_set)
print(s)
difference 的用法
# 先看方法描述吧 ( Return the difference of two or more sets as a new set.)
# 用例子加深印象。
a=set("abc")
print(a.difference("bcd"))
print(a)
set集合运算(|,&,-)
a=set("abc")
b=set("bcd")
print(a-b) #对a进行去重
print(a | b) #并集
print(a & b) #交集
# {'a'}
# {'c', 'a', 'd', 'b'}
# {'c', 'b'}
set和dict的更多相关文章
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- redis数据结构存储Dict设计细节(redis的设计与实现笔记)
说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...
- python list dict 去重的两种方式
def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- python dict clear只能删除一层,不能够递归删除。
void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- python第一天 - dict
dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...
- python利用dict模拟switch
pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...
- python-list tuple dict set
1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...
- python基础之dict、set及字符
python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...
随机推荐
- javaweb基础(33)_jdbc的crud操作
一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...
- Redis学习记录(二)
1.Key命令 设置key的过期时间. expire key second:设置key的过期时间 ttl key:查看key的有效期(如果显示正数说明该key正在倒计时,如果是-1说明该key永久保存 ...
- 表格和网页ico图标
表格: 表格格式: <table> <tr> 表格的行 <th >表头</th> <th>表头 </th> </tr> ...
- 关于小程序 scroll-view中设置scroll-top无效 和小说图书阅读进度条小案例
在最近的项目有做到关于小说阅读的进度条功能,其中用到scroll-view和slider组件,发现scroll-view中的scroll-top在设置值后无效,出现这种情况大概是以下几种问题: 1.s ...
- 模态框获取内容jQuery
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- keepalived原理(主从配置+haproxy)及配置文件详解
下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...
- 原生js替换jQuery各种方法-中文版
原文https://github.com/nefe/You-D... 原生JS与jQuery操作DOM对比 You Don't Need jQuery 前端发展很快,现代浏览器原生 API 已经足够好 ...
- Matlab数据转化至python端,并写入数据库
因工作原因,一些获取的行业数据以已知的结构体存储在.mat文件中, 现需要将其存储在数据库中并且能够灵活调用至python dataframe里进行操作 原数据的一个例子如下 目标如上: 然后是转化代 ...
- 对二维数组使用指针进行操作的探索(C语言)
/* Name: 对二维数组使用指针进行操作的探索 Copyright: Author: lingr7 Date: 01/12/18 11:55 Description: */ #include< ...
- memset和memcpy
void memset(void s, int ch, size_t n); 函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 ...