Python3中的字典

2023-05-16

目录

1:字典的定义及特性

2:常用字典字面量及操作

2.1常用字典字面量及操作汇总

2.3字典的增删改查

2.3.1:字典的增加操作:

2.3.2:字典的删除操作:

2.3.3:字典的修改操作:

2.3.4:字典的查询操作:

2.4 字典的拷贝

2.5 字典的其他常用操作

2.5.1:判断某个key是否存在

2.5.1:字典的遍历


1:字典的定义及特性

字典是一种无序集合的可变数据类型,它以{} 来表示,使用逗号来隔开,内部元素使用键值对(key:value)来存储对象,key必须是不可变的数据类型,value可以是任何类型的数据类型。
字典具有如下特性:
A:任意对象的无序集合,它可变长度,能够任意嵌套。
B:可通过键来访问。
C:属于“可变映射”类型。
D:字典是对象引用表(与列表一样,字典存储的也是对象引用)

2:常用字典字面量及操作

2.1常用字典字面量及操作汇总

操作

说明

示例

结果

D={}

空字典

 

 

D={‘name’:’ixusy88’,’age’:18}

有两个元素的字典

 

 

D={‘ceo’:{‘name’:’ixusy88’,’age’:18} }

字典嵌套

 

 

D = dict(name=’ixusy88’,age=18)

构造方法:关键字

D = dict(name='ixusy88',age=18)

print(D)

{'name': 'ixusy88', 'age': 18}

D=dict([(‘name’,’ixusy88’),(‘age’,18)])

键值对

D=dict([('name','ixusy88'),('age',18)])

print(D)

{'name': 'ixusy88', 'age': 18}

D=dict(zip(keylist,valslist))

拉链试键值对

keylist = ['name','age']

valslist = ['ixusy88',18]

D=dict(zip(keylist,valslist))

print(D)

{'name': 'ixusy88', 'age': 18}

D=dict.fromkeys([‘a’,’b’])

键列表

D=dict.fromkeys(['a','b'])

print(D)

{'a': None, 'b': None}

D[‘name’]

键索引访问

D={'name':'ixusy88','age':18}

print(D['name'])

ixusy88

D[‘ceo’][‘age’]

嵌套索引

D={'ceo':{'name':'ixusy88','age':18}}

print(D['ceo']['age'])

18

age in D

成员关系:键存在测试

D={'name':'ixusy88','age':18}

if 'name' in D:

         print('name in D')

else:

         print('name not in D')

name in D

D.keys()

方法:所有键

D={'name':'ixusy88','age':18}

print(D.keys(),list(D.keys()))

dict_keys(['name', 'age']) ['name', 'age']

D.values()

方法:所有值

D={'name':'ixusy88','age':18}

print(D.values(),list(D.values()))

dict_values(['ixusy88', 18]) ['ixusy88', 18]

D.items()

所有”键+值”元组

D={'name':'ixusy88','age':18}

print(D.items(),list(D.items()))

for k,v in D.items():

         print(k,v)

dict_items([('name', 'ixusy88'), ('age', 18)]) [('name', 'ixusy88'), ('age', 18)]

name ixusy88

age 18

D.copy()

拷贝(顶层的)

D={'ceo':{'name':'ixusy88','age':18}}

D2 = D.copy()

print(D,D2)

# D.copy()只是顶层拷贝,嵌套的字典,还是公共的。

# 修改D2,也会影响到D

D2['ceo']['name'] = '9999'

print(D,D2)

{'ceo': {'name': 'ixusy88', 'age': 18}} {'ceo': {'name': 'ixusy88', 'age': 18}}

{'ceo': {'name': '9999', 'age': 18}} {'ceo': {'name': '9999', 'age': 18}}

D.clear()

清空

D={'name':'ixusy88','age':18}

print(D)

D.clear()

print(D)

{'name': 'ixusy88', 'age': 18}

{}

D.update(D2)

通过键合并

D={'name':'ixusy88','age':18}

D2={'abc':123}

D.update(D2)

print(D,D2)

{'name': 'ixusy88', 'age': 18, 'abc': 123} {'abc': 123}

D.get(key,default)

通过键获取,如果不存在返回默认值。

D={'name':'ixusy88','age':18}

print(D.get('age',0))

print(D.get('aaa',0))

18

0

D.pop(key,default)

通过键删除,如果不存在返回默认值,存在返回对应的value

D={'name':'ixusy88','age':18}

print(D.pop('age',0))

print(D)

print(D.pop('aaaa','不存在'))

print(D)

18

{'name': 'ixusy88'}

不存在

{'name': 'ixusy88'}

D.setdefault(key,default)

通过键获取,如果不存在就先添加,再返回value;如果存在就不会做添加操作,直接返回value值

D={'name':'ixusy88','age':18}

print(D.setdefault('age',100))

print(D)

print(D.setdefault('aaa',88))

print(D)

18

{'name': 'ixusy88', 'age': 18}

88

{'name': 'ixusy88', 'age': 18, 'aaa': 88}

D.popitem()

删除并返回一个键值对;如果是一个空的字典,执行此操作会报错。

D={'name':'ixusy88','age':18}

print(D.popitem())

print(D)

print(D.popitem())

print(D)

print(D.popitem())

('age', 18)

{'name': 'ixusy88'}

('name', 'ixusy88')

{}

Traceback (most recent call last):

  File "D:\python\字典.py", line 108, in <module>

    print(D.popitem())

KeyError: 'popitem(): dictionary is empty'

len(D)

长度(键值对的对数),顶层的

D={'name':'ixusy88','age':18,'aaa':{'bbb':123}}

print(len(D))

3

D[key] = 88

新增或修改键对应的值

D={'name':'ixusy88','age':18}

D['aaa'] = 88

print(D)

{'name': 'ixusy88', 'age': 18, 'aaa': 88}

del D[key]

根据键删除,删除不存在的key会报错

D={'name':'ixusy88','age':18}

del D['age']

print(D)

# del D['age_11']

{'name': 'ixusy88'}

list(D.keys())

查看字典键

D={'name':'ixusy88','age':18}

print(list(D.keys()))

['name', 'age']

D1.keys()  & D2.keys()

查看2个字典相同的键

D1={'name':'ixusy88','age':18}

D2={'aaa':123,'age':19}

 

print( D1.keys() & D2.keys() ) 

print( D1.keys() | D2.keys() )

print( D1.keys() ^ D2.keys() )

{'age'}

{'name', 'age', 'aaa'}

{'name', 'aaa'}

D = {x:x*2 for x in range(10) }

字典推导

D = {x:x*2 for x in range(3) }

print(D)

{0: 0, 1: 2, 2: 4}

 

 

查看更多方法及使用说明 使用下面语句查看:

#print(dir(dict))
print([item for item in dir(dict) if not item.startswith('__') ])
#print(help(dict))

2.3字典的增删改查


    字典也是可变数据类型,因此可以进行增删改操作:


2.3.1:字典的增加操作:

dic = {}  # 或者 dic = dict()
# 1: 直接用key 往里面存数据即可,
#    如果不存在key值就添加,如果存在就更新key对应的值;
dic['刘德华'] = '马桶'  #  直接用key 往里面存数据即可
dic['王宝强'] = '天下无贼'
print('1---:',dic)   #  输出  {'刘德华': '马桶', '王宝强': '天下无贼'}
dic['王宝强'] = '士兵突击'  # 如果key值存在,那么会替换掉原来的value
print('2---:',dic)    # 输出  {'刘德华': '马桶', '王宝强': '士兵突击'}

# 2:setdefault(),如果不存在就添加,返回value值;如存在就不做增加处理,返回原来的value值
value = dic.setdefault('黄秋生', '头文字D')
print('3---:',value)  # 头文字D
print('4---:',dic)    # {'刘德华': '马桶', '王宝强': '士兵突击', '黄秋生': '头文字D'}
value = dic.setdefault('黄秋生', '无间道')  # 如果存在了key,不会执行增加操作,
print('5---:',value)  # 头文字D
print('6---:',dic)    # {'刘德华': '马桶', '王宝强': '士兵突击', '黄秋生': '头文字D'}


"""
输出结果:
1---: {'刘德华': '马桶', '王宝强': '天下无贼'}
2---: {'刘德华': '马桶', '王宝强': '士兵突击'}
3---: 头文字D
4---: {'刘德华': '马桶', '王宝强': '士兵突击', '黄秋生': '头文字D'}
5---: 头文字D
6---: {'刘德华': '马桶', '王宝强': '士兵突击', '黄秋生': '头文字D'}
"""

2.3.2:字典的删除操作:

# 1: pop,指定 key值删除
# dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "王宝强": "天下无贼" }
value = dic.pop('王宝强')  # key存在,并返回key对应的value
print('1---:',value)  # 天下无贼
print('2---:',dic)   # {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记'}

dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "王宝强": "天下无贼" }
# dic.pop('刘德华')  # key值不存在,这样删除会报错, KeyError: '刘德华'
# 删除时指定默认的返回值
value = dic.pop('刘德华',None) #  这样删除不会报错
print('3---:',value)  # None
print('4---:',dic)    # {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '王宝强': '天下无贼'}

# 2: popitem()  随机删除,返回被删除的键值对;字典中需要有元素,不然会报错。
dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "王宝强": "天下无贼" }
dic.popitem()      # 随机删除
print('5---:',dic)

#  3: del,key值需要存在,不然会报错
dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "王宝强": "天下无贼" }
del dic['苏有朋']    # 删除存在的key值,
print('6---:',dic)
#del dic['苏有朋']    #  删除不存在的key,报错, KeyError: '苏有朋'
#print(dic)

# 4:clear() 清空字典
dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "王宝强": "天下无贼" }
dic.clear()   # 清空字典
print('7---:',dic)

"""
1---: 天下无贼
2---: {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记'}
3---: None
4---: {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '王宝强': '天下无贼'}
5---: {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记'}
6---: {'黄日华': '天龙八部', '王宝强': '天下无贼'}
7---: {}

"""

2.3.3:字典的修改操作:

# 更新(修改):
# 通过键值去更新
dic = {"黄日华": "天龙八部", "苏有朋": "倚天屠龙记", "刘德华": "马桶", "王宝强": "天下无贼" }
dic['刘德华'] = '无间道' # key不存在就添加,key存在就更新
print('1---',dic)

# update更新
dic2 = {'刘能': '乡村爱情', '王宝强': '士兵突击'}
dic.update(dic2)  # 将dic2所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic中
print('2---',dic)
print('3---',dic2)
 
"""
1--- {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '刘德华': '无间道', '王宝强': '天下无贼'}
2--- {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '刘德华': '无间道', '王宝强': '士兵突击', '刘能': '乡村爱情'}
3--- {'刘能': '乡村爱情', '王宝强': '士兵突击'}

"""

2.3.4:字典的查询操作:

# 查询(获取元素)
dic = {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '刘德华': '无间道', '王宝强': '士兵突击', '刘能': '乡村爱情'}
#1:最直观。直接用key
print('1----',dic)
print("2----dic['苏有朋']=",dic['苏有朋'])   # 没有key值会报错
#print(dic['苏有朋3'])  # KeyError: '苏有朋3'

#2:get方法,不存在返回None
print("3----dic.get('黄日华')=",dic.get('黄日华'))
print("4----dic.get('黄日华2')=",dic.get('黄日华2'))  # 不存在返回 None
print("5----dic.get('黄日华3', 'haha不存在')=",dic.get('黄日华3', 'haha不存在'))  # 第二个参数,不存在的时候,默认的返回值

"""
1---- {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '刘德华': '无间道', '王宝强': '士兵突击', '刘能': '乡村爱情'}
2----dic['苏有朋']= 倚天屠龙记
3----dic.get('黄日华')= 天龙八部
4----dic.get('黄日华2')= None
5----dic.get('黄日华3', 'haha不存在')= haha不存在
"""

2.4 字典的拷贝

print('***变量赋值:','*'*60)
#  1:变量赋值,没有实现拷贝,两个变量都是指向同一个对象。
dic1 = {'刘能': '乡村爱情', '王宝强': '士兵突击'}
dic2= dic1  #  变量赋值,dic1,dic2都指向了相同的对象
print('1-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('1-2---:dic2=',dic2,'id(dic2)=',id(dic2))

dic1['刘能'] = '刘老根Ⅱ'  # 赋值之后,修改了共同的对象
print('2-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('2-2---:dic2=',dic2,'id(dic2)=',id(dic2))

print('***dict() 构造函数:','*'*60)
# 使用dict() 构造函数拷贝,只是拷贝顶层的
dic1 = {'刘能': '乡村爱情', '王宝强': '士兵突击','ceo':{'name':'ixusy88','age':18}}
dic2 =  dict(dic1) # 拷贝了一份副本
print('3-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('3-2---:dic2=',dic2,'id(dic2)=',id(dic2))
dic1['刘能'] = '刘老根Ⅱ'  # 赋值之后 ,只改变dic1指向的对象,对dic2指向的对象没有影响。
dic2['ceo']['age'] = 19   # 里面嵌套的字典还是共有的,赋值之后对两个都有影响。
print('4-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('4-2---:dic2=',dic2,'id(dic2)=',id(dic2))

print('***dict.copy() 构造函数:','*'*60)
# 使用dict() 构造函数拷贝,只是拷贝顶层的
dic1 = {'刘能': '乡村爱情', '王宝强': '士兵突击','ceo':{'name':'ixusy88','age':18}}
dic2 =  dic1.copy()
print('5-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('5-2---:dic2=',dic2,'id(dic2)=',id(dic2))
dic1['刘能'] = '刘老根Ⅱ'  # 赋值之后 ,只改变dic1指向的对象,对dic2指向的对象没有影响。
dic2['ceo']['age'] = 19   # 里面嵌套的字典还是共有的,赋值之后对两个都有影响。
print('6-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('6-2---:dic2=',dic2,'id(dic2)=',id(dic2))

print('***使用深度拷贝:','*'*60)
# 深度拷贝,需要引入一个模块
import copy
dic1 = {'刘能': '乡村爱情', '王宝强': '士兵突击','ceo':{'name':'ixusy88','age':18}}
dic2 = copy.deepcopy(dic1)  # 完全拷贝了一份,包括里面嵌套的
print('7-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('7-2---:dic2=',dic2,'id(dic2)=',id(dic2))
dic1['刘能'] = '刘老根Ⅱ'  # 赋值之后 ,只改变dic1指向的对象,对dic2指向的对象没有影响。
dic2['ceo']['age'] = 19   # 赋值之后 ,只改变dic2指向的对象,对dic1指向的对象没有影响。
print('7-1---:dic1=',dic1,'id(dic1)=',id(dic1))
print('7-2---:dic2=',dic2,'id(dic2)=',id(dic2))

"""
***变量赋值: ************************************************************
1-1---:dic1= {'刘能': '乡村爱情', '王宝强': '士兵突击'} id(dic1)= 1781472941112
1-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击'} id(dic2)= 1781472941112
2-1---:dic1= {'刘能': '刘老根Ⅱ', '王宝强': '士兵突击'} id(dic1)= 1781472941112
2-2---:dic2= {'刘能': '刘老根Ⅱ', '王宝强': '士兵突击'} id(dic2)= 1781472941112
***dict() 构造函数: ************************************************************
3-1---:dic1= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic1)= 1781472940248
3-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic2)= 1781472941400
4-1---:dic1= {'刘能': '刘老根Ⅱ', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 19}} id(dic1)= 1781472940248
4-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 19}} id(dic2)= 1781472941400
***dict.copy() 构造函数: ************************************************************
5-1---:dic1= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic1)= 1781472902312
5-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic2)= 1781472940248
6-1---:dic1= {'刘能': '刘老根Ⅱ', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 19}} id(dic1)= 1781472902312
6-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 19}} id(dic2)= 1781472940248
***使用深度拷贝: ************************************************************
7-1---:dic1= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic1)= 1781442952720
7-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic2)= 1781472940464
7-1---:dic1= {'刘能': '刘老根Ⅱ', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 18}} id(dic1)= 1781442952720
7-2---:dic2= {'刘能': '乡村爱情', '王宝强': '士兵突击', 'ceo': {'name': 'ixusy88', 'age': 19}} id(dic2)= 1781472940464
"""

2.5 字典的其他常用操作

2.5.1:判断某个key是否存在

dic = {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记', '刘德华': '无间道', '王宝强': '士兵突击'}

# 1:使用get方法
if dic.get('黄日华1') == None:
    print('黄日华1 不存在')
else:
    print('黄日华1 存在')

# 2:成员关系 in
if '黄日华2' in dic:
    print('黄日华2 存在')
else:
    print('黄日华2 不存在')

if  '黄日华3' in dic.keys():
    print('黄日华3 存在')
else:
    print('黄日华3 不存在')

2.5.1:字典的遍历

dic = {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记'}

# 对字典的遍历
print('-1-keys:' + '-'*30)
print(dic.keys())  # dict_keys(['黄日华', '苏有朋'])  像列表,但不是列表
# 遍历key,并通过key访问value
for key in dic.keys():
    print(key, dic[key])

print('-2-values:' + '-'*30)
print(dic.values())
# 遍历value
for value in dic.values():
    print(value)

print('-3-items:' + '-'*30)
# 也可以遍历字典
print(dic.items())  # 拿到的是 (key,value)元组
for item in dic.items():
    print(item,type(item))   # item 为元组
    print(item[0], item[1])  # 通过下标访问元组 item[0] 为key值,item[1]为value值


for item in dic.items():
    k, v = item # item 是元组,进行解包
    print(k, v)

# 可以直接使用下面的方式:
for key, value in dic.items():  # 当需要遍历字典,在操作中涉及到key和value的时候
    print(key, value)


#  字典本身是一个可迭代对象,可以直接进行for循环
dic = {'黄日华': '天龙八部', '苏有朋': '倚天屠龙记'}
# 只需要遍历key的时候,使用这种方式
for key in dic:  # 拿到的是Key,  dic.keys()的结果一样
    print(key)

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3中的字典 的相关文章

  • Python3 中 bytes 和 string 之间的互相转换

    因为这是原来不知道 Markdown 时写的文章 富文本编辑器不知道怎么用脚注 所以参考资料显得有些孤立了 见谅 Table of Contents 前言 创建 bytes 型数据 创建字符串 相互转换 string to bytes 按
  • python3.6打包成exe可执行文件,已解决方案

    将python程序打包成exe可执行文件有多种方法 这里讲一种最简单最常用的方法 只需要使用pyinstaller命令即可 一 环境 Windows 7或10 x64 Python 3 6 1 二 需要包 pyinstaller 3 3 p
  • Python3实现向指定邮箱发送邮件(支持附件文件、图片等)

    Background 最近业务需求需要把生成的月报定时发送到指定邮箱 直接在网上找了相关经验改巴改巴给实现了 测试可以直接使用 生产是我从MySQL数据库获取文件信息和邮箱等使用的 程序中的注释相当清楚了 定时是通过shell脚本实现的 获
  • Python3入门基础(10)一个对象

    Python3 面向对象 面向对象技术 与 Java 类似 类 Class 用来描述具有相同的属性和方法的对象的集合 它定义了该集合中每个对象所共有的属性和方法 对象是类的实例 方法 类中定义的函数 类变量 类变量在整个实例化的对象中是公用
  • 使用 selenium 连接已经打开的 chrome 浏览器

    1 方法一 新建文件夹test 进入chrome exe 目录 打开CMD 输入 chrome exe remote debugging port 9999 user data dir D test 弹出 浏览器框 pycharm运行脚本如
  • _signature、a_bogus、X-Bogus、msToken生成【2023.8.24】全站通用a-bogus

    本文以教学为基准 本文提供的可操作性不得用于任何商业用途和违法违规场景 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任 包含关注 点赞等 没露任何版权请审核员认真对待谢谢 2022 12
  • vscode开发python项目使用flake8、yapf工具格式化pip8编码规范

    前言 使用flake8 yapf工具工具去格式化py文件 有助于生成满足pep8规范 使用快捷键即可完成 提高开发效率 安装配置 1 win10下安装flake8 yapf pip install flake8 pip install ya
  • Python3、setuptools、Pip3安装详解

    博客核心内容 1 Python3安装 2 setuptools安装 3 Pip3安装 之所以写这篇博客 也是有很多原因了 每次安装都要从网上各种百度 网上的答案也是各种各样 于是决定好好总结一下 下面是我在安装的过程中参考的几篇博客 附上相
  • python2.x脚本转换为python3.x脚本方法详细步骤与实践分享

    1 安装python3 x 2 设置python环境变更 将C Python36 Scripts C Python36 追加加到系统变更PATH中 注 C Python36为安装路径 若不一致请更换成你的安装路径 3 找到2to3 py脚本
  • 基于opencv的家居智能安防机器视觉系统

    基于opencv的家居智能安防机器视觉系统 关键词 Windows 树莓派 python opencv 1 写在前面的话 大学4年很快过去了 因为疫情原因我们从大四上学期结束之后直接跳到了大学的尾声 毕业设计 毕业答辩 毕业的环境 回顾整个
  • python3爬虫系列之使用requests爬取LOL英雄图片

    我们最终目的就是要把抓取到的图片保存到本地 所以先写一个保存图片的方法 可以保存任何二进制文件 注意在windows下文件命名包含 可能会发生错误 有的英雄皮肤名称确实包含 所以这里使用正则表达式替换下 方法包含文件路径 文件名称 文件内容
  • Windows7(x64) 安装Python3.7.0

    日期 2018年8月8日 作者 Commas 注释 本文写Windows7 x64 安装Python3 7 0 讲述了基本的安装操作 同时也介绍了一些相关的基础知识 本文若有哪些地方写的有所纰漏 还望各位看客指出 谢谢 如果您想了解更多有关
  • jquery ajax url中有中文,后端乱码的解决方法.txt

    参考 https zhidao baidu com question 2057437468670456147 html url类似 http localhost 8080 floorsNodes 风管 json 方法 在jquery aja
  • python3解决读取到的邮件中的乱码问题

    点进来看这篇文章的你 是不是有这种情况 不管用什么模块去读取邮箱中的邮件 都能看到类似 gb18030 B 1vfM4g 这样的仿佛像乱码一样的东西 你比如说这样子的 X QQ FEAT YSSoAXAEBlFn3rgysgiXLVc6JA
  • 总结12个python代码

    python有很好的可读性和简洁性 学会其中的小的技巧 运用的恰当 会让我们的工作事半功倍 以下是我总结的12个小的程序段 看似非常的简单 但是却非常的有技巧性 并且对个人的编程能力是一个很好的检验 大家应该在日常的编程中多多使用 多多练习
  • python pyinstaller打包参数介绍(转)

    pyinstaller相关参数 F onefile 打包一个单个文件 如果你的代码都写在一个 py文件的话 可以用这个 如果是多个 py文件就别用 D onedir 打包多个文件 在dist中生成很多依赖文件 适合以框架形式编写工具代码 我
  • Python3之异常with语句

    高级语法之异常with 语法 with 表达式1 as 变量1 表达式2 as 变量2 语句块 with的作用 使用于对资源进行访问的场合 确保使用过程中不管是否发生异常都会执行必须的 清理 操作 并释放资源 如 文件打开后自动关闭 线程中
  • openCV无法打开USB摄像头问题

    用Python OpenCV 打开USB摄像头时 出现如下提示 意思是 媒体类型不匹配 测试源代码 cap cv2 VideoCapture 0 while cap isOpened start time time is opened fr
  • Python3 如何优雅地使用正则表达式(详解五)

    非捕获组命名组 精心设计的正则表达式可能会划分很多组 这些组不仅可以匹配相关的子串 还能够对正则表达式本身进行分组和结构化 在复杂的正则表达式中 由于有太多的组 因此通过组的序号来跟踪和使用会变得困难 有两个新的功能可以帮你解决这个问题 非
  • centos7 pip3 安装python模块包报错解决

    centos7 pip3 安装python模块包报错 bash usr local bin pip3 usr local bin python3 6 坏的解释器 没有那个文件或目录 root localhost Python pip3 in

随机推荐

  • node.js 初识node.js,运行在服务端的 JavaScript(一)

    文章目录 1 浏览器原理1 1 浏览器的五部分组成1 2 渲染引擎 也叫做排版引擎或浏览器内核 1 3 浏览器访问服务器的过程1 4 HTTP请求报文和响应报文 2 web开发本质3 什么是node js xff1f 4 node js有哪
  • 解决VS code报错,过程试图写入的管道不存在(Bad owner or permissions on C:\\Users\\Administrator/.ssh/config)

    开始在使用VS code远程连接ssh时 xff0c 发现上面报错了 xff1a 并且发现在cmd中 xff0c 使用ssh root 64 xxx IP xxx也是报错Bad owner or permissions on 后来发现原来时
  • Edge跨域设置

    1 自定义目录 xff1a C Users DELL EdgeDevUserData 2 复制 xff1a disable web security user data dir 61 C Users DELL EdgeDevUserData
  • JavaScript 基础笔记总结(全部)

    文章目录 1 声明变量 var2 变量命名的规则3 数据类型以及注意事项4 代码注释5 其他类型转换为字符串6 数值类型转换7 布尔类型转换8 算数操作符9 一元运算符10 逻辑运算符11 比较运算符12 赋值运算符13 运算优先级14 流
  • linux系统 常用命令(全面总结)

    文章目录 1 Linux 之 文件目录 工作机制2 Linux命令 之 文件目录管理2 1 目录管理2 1 1 cd2 1 2 ls2 1 3 pwd2 1 4 mkdir2 1 5 rmdir2 1 6 tree 需要安装 2 2 文件管
  • ElasticSearch 8 学习笔记总结(五)

    文章目录 一 ElasticSearch 8 版本二 ES8 集群 环境安装1 生成安全证书2 生成http证书3 配置第一个节点4 配置其他节点 三 ES集群 关联问题解决四 Kibana 安装和使用五 kibana 基础操作1 索引操作
  • ElasticSearch 8 学习笔记总结(六)

    文章目录 一 ES8 的Java API 环境准备二 ES8 的Java API 索引操作三 ES8 的Java API 文档操作1 文档的 插入 批量插入 删除等操作2 文档的查询 四 异步客户端操作 一 ES8 的Java API 环境
  • ElasticSearch 8 学习笔记总结(七)

    感觉这些东西没必要认真学 xff0c 了解一下 xff0c 工作用到再学 文章目录 一 ES8 EQL 介绍二 ES8 EQL基本操作 与 安全检测三 ES SQL操作四 ES SQL与DSL的关系五 ES 常用的SQL操作六 ES dat
  • 6大热门开源自动化测试框架【建议收藏】

    如果您正在考虑构建自己的测试自动化框架 xff0c 请在自荐之前 xff0c 参考一下以下的六大热门自动化测试框架 在大多数情况下 xff0c 您将会很好地考虑一个或多个可用的开放源代码选项 这是因为一般来说 xff0c 框架是可以在团队中
  • Docker从入门到进阶之进阶操作(6) —— 【在docker上运行gitlab】

    上一章节讲了使用docker来做nginx的负载均衡 xff0c 这一章节讲 在docker上运行gitlab 在本章节中 xff0c 将为您演示如何在docker上运行gitlab GitLab 是一个用于仓库管理系统的开源项目 xff0
  • VSCode使用技巧(二)——调整终端控制台字体大小

    近期使用vs code来链接服务器进行日常工作 xff0c 但是在使用vs code中的 34 终端 34 控制台来对代码进行操作时 xff0c 终端 控制台的字体较小 xff0c 看起来非常不舒服 xff0c 如下图所示 xff1a 使用
  • CentOS-7 下 GitLab 安装部署教程

    CentOS 7 下 GitLab 安装部署教程 前言主要内容GitLab 介绍本篇环境信息 准备工作配置清华大学镜像仓库安装基础依赖安装 Postfix开放 ssh 以及 http 服务 xff08 80 端口 xff09 部署过程1 Y
  • 2020 CCF 非专业级别软件能力认证第一轮(CSP-S) 提高级 C++ 语言试题

    目录 一 选择题 xff1a 每题 2 分 xff0c 共 15 题 xff0c 30 分 在每小题给出的四个选项中 xff0c 只有一项是符合题目要求的 二 阅读程序 程序输入不超过数组或字符串定义的范围 xff1b 判断题正确填 3 x
  • 最小生成树算法总结【洛谷P3366】

    一 Prim算法 Prim算法是一种以点集为出发点的最小生成树算法 xff0c 它将无向图G中所有顶点V分成两个子集A B 初始时 xff0c A中只包含一个随机选取的顶点u xff0c 其余顶点属于集合B 每次从集合B中选取一个顶点加入顶
  • Linux下出现Read-only file system解决办法

    问题描述 涉及到修改 保存条目等需要写磁盘操作的命令都无法使用 xff08 如tar cp mv rm chmod chown wget下载等指令 xff09 xff0c 总是提示Read only file system xff0c 也就
  • Spring Boot整合Mybatis Plus和PageHelper插件实现分页查询

    简述 xff1a Spring Boot整合Mybatis Plus PageHelper插件实现分页查询功能 环境 xff1a DB Postgre SQL 插件 1 Mybatis Plus 2 PageHelper Maven依赖 x
  • 快速幂、快速幂取模的分析与代码实现

    写在前面 在网上搜了相关内容 xff0c 感觉写的都不是特别详细 xff0c 也没有人讲 xff0c 只能自己理解了 下面会写一下这3个算法的分析与实现 当然都是基于自己的理解 因为博主搜了很多博客都是没有详细的解释 xff0c 数学渣一脸
  • MATLAB fprintf/fscanf矩阵原样输出/读入方法

    fprintf原样输出 a 61 1 2 3 4 5 6 7 8 9 fid 61 fopen 39 d Matlab R2014a project 1 txt 39 39 w 39 fprintf fid 39 d d d n 39 a
  • usr/bin/ld: cannot find 错误解决方法

    文章出处 xff1a http blog csdn net osoon archive 2010 04 25 5526455 aspx 通常在软件编译时出现的usr bin ld cannot find lxxx的错误 xff0c 主要的原
  • Python3中的字典

    目录 1 xff1a 字典的定义及特性 2 xff1a 常用字典字面量及操作 2 1常用字典字面量及操作汇总 2 3字典的增删改查 2 3 1 xff1a 字典的增加操作 2 3 2 xff1a 字典的删除操作 2 3 3 xff1a 字典