在开发python中遇到的那些还没掌握的基础知识

发布于 2021-07-30 12:00:24

记录在开发python中遇到的那些还没掌握的基础知识,这方面的可以多回来看看,巩固一下。

查看更多

浏览量
2623
6 个回答
猫哥
猫哥 项目组成员 2021-08-09
更多问题可加猫哥QQ(632906391)寻求帮助

zip() 处理多个迭代器对象,将对象中的对应元素一一对应组合成一个个元组,返回由元组组成的列表对象

a = [1,2,3,4]
b = [4,5,6]
zip(a,b) => [(1,4),(2,5),(3,6)] 以短的为主

链接

如何实现两个列表的逐元素相减

list1 = [1,2,3]
list2 = [6,4,8]
list3 = list(map(lambda x:x[0]-x[1],zip(list2,list1)))
list3 => [5,2,3]
猫哥
猫哥 项目组成员 2021-08-10
更多问题可加猫哥QQ(632906391)寻求帮助

如何编写微妙级别的延迟

time.sleep() 函数延迟是毫秒级,最低延迟1毫秒,那如何延迟到微妙级呢?
def sleep_us(us: int):
    """
    sleep的微妙级定义
    :param us: 延迟微妙数 -3是自身调用函数,执行循环等指令损耗的时间,单位us
    :return:
    """
    start, end = 0, 0
    start = time.time()
    us = (us - 3) / 1000000
    while end - start < us:
        end = time.time()
猫哥
猫哥 项目组成员 2021-08-03
更多问题可加猫哥QQ(632906391)寻求帮助

以管理员的身份运行python文件

    import sys
    if not windll.shell32.IsUserAnAdmin():
        # 不是管理员就提权
        windll.shell32.ShellExecuteW(
            None, "runas", sys.executable, __file__, None, 1)
猫哥
猫哥 项目组成员 2021-08-01
更多问题可加猫哥QQ(632906391)寻求帮助

如何获取当前时间戳

# 使用time模块
time.time()

运算符优先顺序:not>and>or

线程中的start join daemon

thread_num = threading.Thread(target=action, args=my_tuple) #线程创建
thread_num.start() #线程启动,进入就绪状态,等待cpu执行
thread_num.join(timeout) #使当前这个线程的调用者优先获得cpu资源,timeout指定最多霸占cpu资源的时间
thread_num.setDaemon(True) #设置为守护线程,只主线程结束后,哪怕没完成thread_num线程也将立即结束

更多有关线程前往这里

如何删除列表中的一个值

# remove方法:该方法没有返回值但是会移除列表中的某个值的第一个匹配项
list.remove('xxx') 重点:不是按索引删除哦
# del方法
del list[1] 重点:按索引删除数值,还可以删除范围内值
del list[2:4]
# pop方法,也是索引删除,返回删除的数值
list.pop(2)

字符串转列表 列表转字符串

mylist = mystring.split('_',split_count)
mystring = '_'.join(mylist)

python的推导式(for表达式)怎么用

语法格式:[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
其实就是:
for 迭代变量 in 可迭代对象:
    if 条件表达式:
        表达式

python.exe和pythonw.exe的区别

python.exe在运行程序的时候,会弹出一个黑色的控制台窗口(也叫命令行窗口、DOS/CMD窗口)对应 *.py 文件
pythonw.exe是无窗口的Python可执行程序,意思是在运行程序的时候,没有窗口,代码在后台执行,对应 *.pyw 文件

队列的使用

python中有内置的队列库Queue,使用如下:
import Queue as _queue
queue = _queue.Queue(maxsize=2) 创建一个先进先出的队列,长度为2
queue_2 = _queue.LifoQueue(maxsize=3) 创建一个先进后出的队列,长度为3
queue.put(i) 入队
queue.get(i) 出队
猫哥
猫哥 项目组成员 2021-08-16
更多问题可加猫哥QQ(632906391)寻求帮助

在python中 / 和 // 的区别

5 / 2 = 2.5 # / 表示浮点数的除法
5 // 2 = 2 # / 表示整数的向下取整
猫哥
猫哥 项目组成员 2021-08-04
更多问题可加猫哥QQ(632906391)寻求帮助

python 列表乘一个数字N

表示列表内的元素重复N遍,比如
list1 = [0,1]
list2 = list1 * 2
list2 : [0,1,0,1]

如果是多维的比如列表、字典式列表(引用类型列表),也是重复N次,但是它是引用的多次复制,改一个值,其他也会变
list3 = [[0,1],[2,3]]
list4 = list3 * 2
list4 : [[0,1],[2,3],[0,1],[2,3]]

list4[0][0] = 5
list4 : [[5, 1], [2, 3], [5, 1], [2, 3]]
你看第一项和第三项的数据都变成了[5,1],因为是引用修改,他们的指针是一样的。

发布
问题

分享
好友

手机
浏览

扫码手机浏览