Python常用查询(不定期更新)

0.环境与配置

更改pip源

配置TensorFlow-GPU

1.基础语法

1.1 字典(Dictionary) copy()方法

返回一个字典的浅复制。

直接赋值和 copy 的区别可以通过以下实例说明:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
dict1 =  {'user':'runoob','num':[1,2,3]}
 
dict2 = dict1          # 浅拷贝: 引用对象
dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
 
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)
 
# 输出结果
print(dict1)
print(dict2)
print(dict3)

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}

1.2 列表(list)的extend方法

注意exten的两种使用方法,以及与append方法的区别:

a=[0,0,1,1]
b=[]
b.extend([a[0:2]])
b.extend([a[2:4]])
print(b) #[[0, 0], [1, 1]]
c=[]
c.extend(a[0:2])
c.extend(a[2:4])
print(c) #[0, 0, 1, 1]
d=[]
d.append(a[0:2])
d.append(a[2:4])
print(d) #[[0, 0], [1, 1]]

2.文件读写和输入输出

2.1 open方法

  • 用open方法读html
with open('E:\\test2.html','r',encoding="utf-8") as f:
# 加上参数encoding即可,不然遇到中文会遇到编码问题
  • 使用open的三种read方法
str=f.read() #一次性读取文件的所有内容放在内存中,结果是一个字符串
line=f.readline() #逐行读取
list=f.readlines() #一次性读取文本的所有内容,结果是一个list

20080610

f = "lucky.txt"
a =8
with open(f,"w") as file:   #”w"代表着每次运行都覆盖内容
    for i in range(a):
        file.write(str(i) + "d" + " "+"\n")
    a +=1

2.2 遍历文件夹下所有文件

for root, dirs, files in os.walk(file):
        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        # 遍历文件
        for f in files:
            print(os.path.join(root, f))
        # 遍历所有的文件夹
        for d in dirs:
            print(os.path.join(root, d))

也可以用os.listdir(path)

import os, sys
# 打开文件
path = "/var/www/html/"
dirs = os.listdir( path )
# 输出所有文件和文件夹
for file in dirs:
   print file

2.3 创建文件夹

os.mkdir('c:/Users/13770/Desktop/a') #不包含子目录
os.mkedirs('c:/Users/13770/Desktop/a/b') #不包含子目录

2.4 清空文件内容

f.seek(0) #找到文件头
f.truncate()   #清空文件

3.其他技巧

3.1创建固定长度的空列表

features = [[] for _ in range(6)]
print(features)  # [[], [], [], [], [], []]

3.2 打乱数据

dict={
    'im':[[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]],
    'bt':[[10],[11],[12],[13],[14],[15],[16],[17],[18],[19]]
}

index=[i for i  in range(0,len(dict['im'])-1,2)]
random.shuffle(index)
temp=[]
for ind in index:
    temp.extend([ind,ind+1])
index=temp
print(index)

for key in dict.keys():
    temp=[]
    for i in index:
        temp.append(dict[key][i])
    dict[key]=temp

4.字符串处理

4.1 使用正则表达式从字符串中提取数字

import re
\d 匹配单个数字
\d+ 匹配1次或多次单个数字
\d* 匹配0次或多次单个数字
\.? 匹配小数点,因为不确定有没有小数点,所以加上问号,换言之,它匹配0次或1次‘.’
匹配整数可以用:re.findall(r"\d+",string)
匹配小数可以用:re.findall(r"\d+\.?+\d*",string)
返回结果是一个list数组

4.2 简单字符串和数字相互转换

# str <==> int
i = 10
s = str(i)
i = int(s)
# str <==> float
st = '.4'
t = float(st)
st= str(t)

4.3 转义字符

  • \n 是newline,即光标移到下一行行首。
  • \r 是Carriage Return,即光标回到本行行首。
posted @ 2020-08-06 10:54  Neo_KH  阅读(333)  评论(0)    收藏  举报