Python技术迷

某程序员自爆,即使现在年薪100多万了,跟父母聊天,他们还是一个劲说赶紧准备考公,考上了就一辈子不愁了!不知道他们到底是怎么想的

刚看到个贴子,说有个程序员年薪百万了,父母还是天天催着考公务员,说那样一辈子才算稳 。

Image

我觉得这事吧,本质上是代际差异。父母那一辈经历过下岗、经济不确定,觉得“铁饭碗”才最安全,就像下雨天打伞——虽然不舒服,但至少不淋湿。而年轻人看的是机会和自我价值,程序员年薪百万,本质上就是用技术换自由。

网友们的回复我看了,有人觉得父母没错,稳定就是幸福;也有人觉得这是典型的“安全焦虑”,拿不上百万的可能才更适合考公。我比较认同后者,职业没有绝对好坏,关键是适不适合自己。

说到底,父母是担心,但路还是得自己走。赚钱的方式不止公务员,能养活自己、让生活更好,就是另一种“稳”。【备注:文末可领最新资料】

面试题:无流量的帐户数

昨晚十一点半,我在公司楼下点了杯美式,冷风一吹人清醒了,微信群里有人问:那个…“无流量的帐户数”咋做?我想了想,别上纲上线,就当网管日常——有一堆账号和一堆流量日志,问你到底有多少账号这一天一滴流量都没用,零蛋,嗯。

就是有所有账号清单(可能是1..N,或者一堆字符串ID),还有若干条日志,每条像是(account_id, in_bytes, out_bytes, time),判断这天谁既没上行也没下行。注意噢:只要有一条日志里进出流量>0,就算“有流量”。时间窗口别纠结,题目给多大你就按多大。

别去把每个账号的流量都加总,太费事。最省的是“排除法”: 看日志——只要发现某账号有正流量,标记它“活跃”。最后用“总账号数 − 活跃账号数”,剩下的就是“无流量”。这玩意儿单趟扫一遍,O(M);内存用一个集合或位图,O(K),K是活跃的数量。 数据非常大?用位图/roaring bitmap 更省,账号是字符串?那就直接用set(),别瞎优化。还有个坑:日志里可能有纯心跳(in=0且out=0),这种不能算活跃。

from typing import Iterable, Tuple, Set, Union

AccountID = Union[int, str]
Log = Tuple[AccountID, int, int]  # (account_id, in_bytes, out_bytes)

defcount_no_traffic_accounts(all_accounts: Iterable[AccountID],
                              logs: Iterable[Log])
 -> int:

    active: Set[AccountID] = set()
for acc, inflow, outflow in logs:
# 只要有正流量就标记活跃;0+0的心跳忽略
if (inflow > 0) or (outflow > 0):
            active.add(acc)
# 有些账号当天可能完全没出现在日志里,也应计为“无流量”
    total = 0
    no_flow = 0
for acc in all_accounts:
        total += 1
if acc notin active:
            no_flow += 1
return no_flow

# 小测一把
if __name__ == "__main__":
    users = ["u1", "u2", "u3", "u4"]
    day_logs = [
        ("u1", 0, 0),     # 心跳,不算活跃
        ("u1", 100, 0),   # 有流量
        ("u2", 0, 50),    # 有流量
        ("u2", 0, 0),     # 还是心跳
        ("u5", 10, 0),    # 野生账号,可能是脏数据,忽略它对总量
    ]
    print(count_no_traffic_accounts(users, day_logs))  # 期望 2 -> u3, u4

就是那个…有朋友问“u5”这种不在清单里的咋办?很简单,上面代码已经不把它算进“总账号”,只用于标记活跃也没意义,你可以在写入active前先判断是否在白名单里(if acc in valid_set:)。再大一点的场景,比如账号是连续数字1..N,那就用bytearray当位图,1表示活跃,统计0的个数就行,遍历一遍很快的。

行了行了,我先去微波下昨晚的披萨,冷了有点硬…回头有人要并行版本我再补。

-END-

我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领