作者: 墨香-15607781945

Python使用sorted函数对字典进行排序

sorted(sys.values())sorted函数默认是根据键key排序的,所以想要根据值value排序,就需要在sys后面使用values(),获取字典的value值

new_sys2 = sorted(sys.items(), key=lambda d: d[1], reverse=False)其中d == (‘name’, ‘张三’) 或 (‘age’, ‘十八’)或(‘gender’, ‘man’), d[1]是获取每个元组中的第二个元素,就是原sys字典中的value;并将匿名函数的返回值返回给sorted函数的key参数

python操作数据库MongoDB常用的方法,python mongodb update 更新插入和不更新插入,MongoDB之upsert(更新插入)

import pymongo

class MyMongoDB:
def __init__(self, database, collection): # 定义参数接收指定的数据库和集合
self.client = pymongo.MongoClient() # 连接MongoDB
self.db = self.client[database] # 指定数据库
self.col = self.db[collection] # 指定集合

def insert(self, data, onlyOne=True):
if not isinstance(onlyOne, bool):
raise TypeError
self.col.insert_one(data) if onlyOne else self.col.insert_many(data)

def find(self, query=None, onlyOne=True):
if not isinstance(onlyOne, bool):
raise TypeError
return self.col.find_one(query) if onlyOne else self.col.find(query)

def update(self, data, new_data, onlyOne=True):
if not isinstance(onlyOne, bool):
raise TypeError
self.col.update_one(data, {‘$set’: new_data}) if onlyOne else self.col.update_many(data, {‘$set’: new_data})

def delete(self, data, onlyOne=True):
if not isinstance(onlyOne, bool):
raise TypeError
self.col.delete_one(data) if onlyOne else self.col.delete_many(data)

# student = MyMongoDB(‘one’, ‘student’)
# student.insert({‘name’: ‘one’, ‘age’: 18})
# # student.insert([{‘name’: ‘two’, ‘age’: 18}, {‘name’: ‘three’, ‘age’: 18}],False)
# # print(list(student.col.find()))
# # student.update({‘age’: {‘$eq’: 18}}, {‘age’: 20}, False)
# student.delete({},False)
# print(list(student.find(onlyOne=False)))

js&jq:获取div的宽度、高度、屏幕距离方法总结

jq获取div的宽度
只是获取content宽度
var content = $(‘div’). width();
获取content+padding的宽度
var contentWithPadding = $(‘div’). innerWidth();
获取content+padding+border的宽度
var withoutMargin = $(‘div’). outerWidth();
获取content+padding+border+margin的宽度
var full = $(‘div’). outerWidth(true);
注:Margin 有个特色,就是当两个有 margin的 div 靠在一起时,两个 div 紧邻的 margin 不是相加,而是取其大者。
eg:两个 10px margin 的 div 并在一起==> 10px margin 的距离。
一个 20px margin,另一个为 10px margin==> 20px 的 margin。

但是获取当前元素的全部宽度的时候,还是获取自身的margin+content+padding+border的值

jq获取屏幕距离
文档窗口高度
$(window).height();
标签距离顶部高度(没有到下面的距离$(“div”).offset().down)
$(“div”).offset().top;
是标签距离右边高度(没有到下面的距离,$(“div”).offset().right)
$(“div”).offset().left;
滚动条高度
$(document).scrollTop();
标签高度
$(“div”).height();
js获取div的高度
var div = document.getElementById(“div”);

可视内容高度
var clientHeight = div.clientHeight;
占据页面总高度
var offsetHeight = div.offsetHeight;
展开滚动内容总高度
var scrollHeight = div.scrollHeight;
屏幕宽度
var screenWidth = window.screen.width;
js获取屏幕距离
var div = document.getElementById(obj);

div离屏幕上边距离(长度)
var topLength = div.getBoundingClientRect().top;
div离屏幕下边距离(长度)
var bottomLength = div.getBoundingClientRect().bottom;
div离屏幕左边距离(长度)
var leftLength = div.getBoundingClientRect().left;
div离屏幕右边距离(长度)
var rightLength = div.getBoundingClientRect().right;
————————————————
版权声明:本文为CSDN博主「想上天的玖姑娘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kxy5201314/article/details/120882497

python字典读取不报错, 用 get(),s.get(“age”,””) ,自定义类的方式,每次把字典先格式化一下,无对应值返回None ,在 Python 的collections工具模块中,有一个defaultdict实现了类似的事情。我们看它的使用方法

我们要获取name和对应age

for s in ss[“data”]:
#这么写
name = s[“name”]
age = s[“age”]
#还是这么写
name = jsonpath(s,”$..name”)[0]
age = jsonpath(s,”$..age”)[0]

# 这么写给
name = glom(s,’name’)

age = glom(s,’age’)

都会报错:
我们只能用 get()
name = s.get(“name”,””)
age = s.get(“age”,””)
每次这么写感觉会很麻烦,后来发现可以自定义类的方式,每次把字典先格式化一下,无对应值返回None

我们自定义一个类,继承dict,然后实现它的missing方法:

class OurDict(dict):
def missing(self, key):
return None

a = OurDict({‘a’: 1, ‘b’: 2})
print(a[‘x’])

在在后来,在 Python 的collections工具模块中,有一个defaultdict实现了类似的事情。我们看它的使用方法

from collections import defaultdict

a = defaultdict(str)
a[‘a’] = 1
a[‘b’] = 2
print(a)
print(a[‘x’])
print(a)
a = defaultdict(str)接收一个函数,让a变量成为一个defaultdict类型的对象,它可以像普通字典一样被赋值和读取。

但是当你读取一个不存在的 key 时,它会自动生成一个默认值,并把默认值和这个 key 插入到字典中。这个默认值取决于你在defaultdict传入的参数。如果传入的是str那么默认值就是空字符串,如果是int那么默认值就是0.当然你也可以传入自定义的一个函数,从而控制这个默认值。

Python 删除字典元素的4种方法, Python字典的clear()方法(删除字典内所有元素),pop()方法(删除字典给定键 key 所对应的值,返回值为被删除的值),popitem()方法(随机返回并删除字典中的一对键和值),del 全局方法(能删单一的元素也能清空字典,清空只需一项操作)

1. Python字典的clear()方法(删除字典内所有元素)
dict = {‘name’: ‘我的博客地址’, ‘alexa’: 10000, ‘url’: ‘http://blog.csdn.net/uuihoo/’}
dict.clear(); # 清空词典所有条目
1
2
2. Python字典的pop()方法(删除字典给定键 key 所对应的值,返回值为被删除的值)
site= {‘name’: ‘我的博客地址’, ‘alexa’: 10000, ‘url’:’http://blog.csdn.net/uuihoo/’}
pop_obj=site.pop(‘name’) # 删除要删除的键值对,如{‘name’:’我的博客地址’}这个键值对
print pop_obj # 输出 :我的博客地址
1
2
3
3. Python字典的popitem()方法(随机返回并删除字典中的一对键和值)
site= {‘name’: ‘我的博客地址’, ‘alexa’: 10000, ‘url’:’http://blog.csdn.net/uuihoo/’}
pop_obj=site.popitem() # 随机返回并删除一个键值对
print pop_obj # 输出结果可能是{‘url’,’http://blog.csdn.net/uuihoo/’}
1
2
3
4. del 全局方法(能删单一的元素也能清空字典,清空只需一项操作)
site= {‘name’: ‘我的博客地址’, ‘alexa’: 10000, ‘url’:’http://blog.csdn.net/uuihoo/’}
del site[‘name’] # 删除键是’name’的条目
del site # 清空字典所有条目
1
2
3
————————————————

版权声明:本文为CSDN博主「uuihoo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。