Python 小tips

这篇博客介绍了Python中数组的初始化方法,包括使用列表推导式创建NodeList、width和fa数组。还定义了BinTree和Edge类来表示二叉树节点和图的边。接着,展示了如何从输入读取数据,并使用全局变量。文章还涉及了如何存储和排序图的边,以及字符串的对齐输出。最后,提到了如何利用lambda表达式对结构体数组进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组初始化:

https://blog.youkuaiyun.com/scutbenson/article/details/115162140

NodeList = [BinTree() for i in range(n+1)]
width = [0 for i in range(n+1)]
fa = [[0 for i in range(n+1)] for j in range(n+1)]

 

定义结构体:

https://blog.youkuaiyun.com/scutbenson/article/details/115162140

class BinTree(object):
    def __init__(self):
        self.left = None
        self.right = None
        self.deep = None
class Edge(object):
    def __init__(self, x, y, z):
        self.begin = x
        self.end = y
        self.weight = z
#通过Edge(x, y, z)来赋值

 

 

输入:

https://mp.youkuaiyun.com/editor/html/115162140

s = input()
s1, s2 = s.split(' ')

https://blog.youkuaiyun.com/scutbenson/article/details/115342905

n, m = s1.split(' ')
n = int(n)
m = int(m)

 

输出对齐:

https://blog.youkuaiyun.com/scutbenson/article/details/115163511

print("|",format("Ursula","*>20"),"|")    #左对齐
print("|",format("Ursula","*^20"),"|")   #居中对齐
print("|",format("Ursula","*<20"),"|")    #右对齐

 

全局变量:

https://blog.youkuaiyun.com/scutbenson/article/details/115163511

def f():
    global x, y...

 

图存边:

https://blog.youkuaiyun.com/scutbenson/article/details/115477537

用字典类型 + 结构体数组 存储边:

定义:

class Edge():
    def __init__(self, _y, _data):
        self.y = _y
        self.data = _data

造边:

for i in range(m):
    s = input()
    x, y, z = s.split(' ')    #从x到y,长度z
    x = int(x)
    y = int(y)
    z = int(z)
    if x in edg.keys():    #x中是否已有数
        a = edg[x]    #有
    else:
        a = []    #无则创造列表
    a.append(Edge(y, z))    
    edg[x] = a    

 

结构体数组排序:

https://blog.youkuaiyun.com/scutbenson/article/details/115691158

Edg.sort(key=lambda edge: edge.weight)
#lambda edge是自己设的,是Edg[]的一个元素,并按照edg.weight从小到大排序

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值