栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python技巧

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python技巧

1、求解列表最大值及其下标:

max(zip(nums, range(len(nums))))

2、反转列表:

reversed(range(n))

 下面的写法与上面的写法等价

range(n, -1, -1)

 下面的写法也能实现列表反转, 但是a[3:-1:-1]不能实现边截取边反转,只能通过list(reversed(a[0:4]))实现

a[::-1]

 3、二维列表的截取:

[[a[i][j] for j in range(n // 2)] for i in range(n //2)]

跟matlab不同的是,下面写法无法对列进行截取,因为a[:n // 2]本身是一个二维列表

a[:n//2][:n//2]

4、堆的使用,如果使用大顶堆,需要对数值取反:

import queue
q = queue.PriorityQueue()
q.put(num) #放置元素
q.qsize() #获取队列长度
q.get() #取出堆顶元素
q.queue[0] #获取堆顶元素

该模块(queue.PriorityQueue)是从下面的模块(heap)总封装成的,具有线程安全的特点 

import heap
heapq.heapify(nums) #堆排序数组
heapq.heappush(heap, num) #放入元素
heapq.heappop(heap) #取出堆顶元素
nums[0] #获取堆顶元素

5、排序,自定义排序比较函数

from functools import cmp_to_key   
def compare(x, y): 
    return int(y+x) - int(x+y)
nums = sorted(map(str, nums), key=cmp_to_key(compare))

6、 if a: 既会判断 a 是否非None, 是否列表非空,是否字符串不为空串,是否不为0,相当于if bool(a): 

7、使用迭代器中序遍历二叉树:

def inOrder(p):
    if not p: return
    yield from inOrder(p.left)
    yield p.val
    yield from inOrder(p.right)
print(list(inOrder(root)))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/461334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号