现在都得用git爆料了,哈哈~
刚刷到个贴子,说某为员工现在都得跑到git上爆料了
网友们一边调侃“哈哈现在都要用git爆料了”,一边顺便讨论了一波职场现状。作为一个老程序员,我看完只想说,真的无语又好笑😂。 这年头,程序员用git,不光是提交代码,连爆料都直接上开源社区了,技术人果然连吐槽都得走技术流。
网友们有的觉得新鲜,有的担心后果。我觉得这背后其实挺无奈——正常渠道没人听,才会想方设法“曲线救国”。而且放在git上,传播速度和影响力都不是一般的社交平台能比的,程序员一手Ctrl+C/V,分分钟让瓜飞全球🌍。 不过话说回来,任何爆料,还是要注意别踩法律和职业道德的红线,不然就是给自己埋雷。
面试题:每件商品的最新订单
刚在公司茶水间跟小李闲扯,结果又被他一个订单系统的需求给难住了,真是...头发都快薅没了。话说他让帮忙想想,怎么在一堆商品订单里,快速查出每件商品的最新一笔订单信息。唉,说起来好像挺简单,结果一落地就发现,实际场景里数据可不是按顺序来的,订单多的时候还特乱,脑子不转就容易踩坑。
你们有没有这种体验?加班到晚上十点多,饿得不行,外卖都没力气点,就被一个小小的算法恶心着。小李非要用Python,说别的他懒得装环境,行吧,那就Python吧,咱就凑合聊聊,顺便边敲边唠嗑。
反正我第一反应就是...先别管啥高大上的写法,咱直接拿一堆订单来试下。比如一堆dict,每个订单都有商品ID、下单时间、价格那些。你要是直接遍历,遇到同一个商品就比比谁时间新,这种“人脑大法”,其实用代码写也不费劲。以前不是有那种电商抢购脚本嘛,抢的是最新的库存,这种逻辑也很像。
就随手敲了个最简单的,晚上十一点在工位上,边喝冷掉的咖啡边琢磨:
orders = [
{"product_id": "A", "order_id": 1, "order_time": "2024-07-10 09:30:00"},
{"product_id": "B", "order_id": 2, "order_time": "2024-07-10 10:10:00"},
{"product_id": "A", "order_id": 3, "order_time": "2024-07-11 13:05:00"},
{"product_id": "A", "order_id": 4, "order_time": "2024-07-09 16:20:00"},
{"product_id": "B", "order_id": 5, "order_time": "2024-07-11 09:00:00"}
]
from datetime import datetime
latest_order = {}
for order in orders:
pid = order["product_id"]
now_time = datetime.strptime(order["order_time"], "%Y-%m-%d %H:%M:%S")
# 每次都比一下,是不是比现在记下的还新
if pid notin latest_order or now_time > latest_order[pid]["order_time"]:
latest_order[pid] = {
"order_id": order["order_id"],
"order_time": now_time,
"raw": order
}
# 要是直接想要原始订单信息,遍历下
for pid, info in latest_order.items():
print(f"{pid} 的最新订单是: {info['raw']}")
哎我说,这种写法丑点就丑点吧,主要就是“遍历+字典”大法,跟炒鸡蛋一样简单粗暴。你要是嫌慢,那就是订单太多了,批量查数据库或者Pandas都一样这套路。
数据量大的时候咋整?
小李后来又问,万一订单多得要死,是不是得用点“骚操作”?其实也没啥,咱就套Pandas呗,毕竟都懒得自己搞SQL了:
import pandas as pd
df = pd.DataFrame(orders)
df['order_time'] = pd.to_datetime(df['order_time'])
idx = df.groupby("product_id")['order_time'].idxmax()
latest_df = df.loc[idx]
print(latest_df)
你看这Pandas就有点那味儿了,一行顶十行,能省事就省事,谁还晚上在工位啃冷面包写for循环啊,是吧?
嗐,这玩意说穿了就是去重+找最大值,生活里干啥不都是“谁最近、谁最大、谁最新”那一套?用Python就是图个快,手边有啥就用啥。其实我更喜欢写点小工具,直接扔到定时脚本里,一天丢一回,第二天老板也找不到你麻烦。
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领