python知识点汇总

一 变量类型

1.1 字符串

字典和字符串

字符串转字典:str1 = "{'key':1,'value':2}"eval()

01 内置函数eval()  实现str 和list tuple dict相互转化

# eval() 内置函数  str 和 list  tuple dict相互转化
data = "{'key1':'a','key2':2}"
str2dict = eval(data)
print("str2dict:   ",str2dict)  # {'key1': 'a', 'key2': 2}
print("str2dict数据类型是:  ",type(str2dict))  # <class 'dict'>

02 json.dumps()和json.loads()对简单的数据类型进行编解码

json编码中:python原始类型到json类型的转化对照表

python知识点汇总

# json.dumps() dict编码为json
dictD = {'key1': 'a', 'key2': 2}  --》{"key1": "a", "key2": 2}
dict2json = json.dumps(dictD)
print("dict2json:   ",dict2json)  # {"key1": "a", "key2": 2}
print("dict2json数据类型是:   ",type(dict2json))  # <class 'str'>

json解码中:json类型到python原始类型转化对照表

python知识点汇总

data2 = '{"key1":"c","key2":4}'# 里边只能是双引号,单引号会报错,如'{'a':1}'
json2dict = json.loads(data2)
print("json2dict:   ",json2dict)
print("json2dict数据类型是:   ",type(json2dict))

str='{'a':1}' 想转化成json格式,需要先转成dict
'{'a':1}'--》{'a':1}-->{"a":1}

{'a':1} = eval('{'a':1}')

{"a":1} = json.dumps({'a':1})

1.2 列表  list

列表的索引   取头不取尾

lst = ['a','b',1,0]

lst.append('c')     ['a','b',1,0.'c']

lst.pop(0)   ['b',1,0,'c']

lst[0]-->a;   lst[1:3]---> b ,1 ;   lst[:3] ---> a,b,1;   lst[1:] --> b, 1, 0;   lst[:] ---> a,b,1,0

lst[-1]-->0;  lst[-3:-1] --->b,1 ;   lst[:-1] --> a,b,1  ;   lst[-2:] ---> 1,0

lst[1:-1]-->b,  lst[-4:2]---> a,b

列表遍历

# 普通迭代
for i in lst:
    print(i)
# 带索引的迭代
for index,value in enumerate(lst):
    print("index: ",index,"value: ",value)

# 拓展场景(1)多列表迭代
# 	01 循环嵌套  缺点:代码复杂度高
xl,yl,zl = ['a'],['b'],['c']
for x in xl:
    for y in yl:
        for z in zl:
            print(z)
        print(y)
    print(x)

# 	02 intertools 标准库  缺点:不方便调试
from itertools import product
for x,y,z in product(xl,yl,zl):
    print(x,y,z)

# 拓展场景(2)交集、并集、补集
a=[2,3,4,5]
b=[2,5,8]
# 交集
ls1 = list(set(a).intersection(set(b)))
print("交集:",ls1)
# 并集
ls2 = list(set(a).union(set(b)))
print("并集:",ls2)
# 差集
ls3 = list(set(b).difference(set(a))) # b中有而a中没有的
ls4 = list(set(a).difference(set(b))) # a中有而b中没有的
print("以b为底,a的补集:",ls3)
print("以a为底,b的补集:",ls4)    

交集: [2, 5]
并集: [2, 3, 4, 5, 8]
以b为底,a的补集: [8]
以a为底,b的补集: [3, 4]

 1.3 元组 tuple

一旦创建,不可修改,但是两个元组之间可以合并

t1 = (1, 2, 3)
t2 = (4, 5, 6)
print(t1+t2) # (1, 2, 3, 4, 5, 6)

注:元组和列表区别

列表是动态数组,内容和长度可变

元组是静态数组,内容和长度都不可变

元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。

1.4 字典 dict

取值

personinfo = {'name': 'joe', 'age':'20', 'hobby':'football'}
print(personinfo['name'])  # joe

遍历迭代

personinfo = {'name': 'joe', 'age':'20', 'hobby':'football'}
print(personinfo['name'])
for k,v in personinfo.items():
    print(k,v)
# 结果    
name joe
age 20
hobby football

使用场景

 

 

 

1.5 拓展

 

 

参考资料: 

https://mp.weixin.qq.com/s/vfxbNZcw6Uy4jFlI5VlmDA

 

上一篇:Mongodb脚本记录


下一篇:python -三元表达式、列表生成式、字典生成式