V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  EurekaSeven  ›  全部回复第 1 页 / 共 1 页
回复总数  9
2019-12-16 16:37:09 +08:00
回复了 codeismylife 创建的主题 程序员 同事为了 JSON 怎么写吵起来了!请各位断案!
抛开应用场景谈对错都是耍流氓。
2019-12-02 15:42:31 +08:00
回复了 renantianxia8 创建的主题 Python Python 太难找工作了
@alw1329 ```python
# 一个例子,实际数据比较长

# 比如这是我一个很长的需要的数据列表
# 里面缺失了一个 matchId
event_data_list = [{
"id": "周二 001",
"matchTime": "2019/10/23 0:15:00",
"league": "亚冠杯",
"home": "希拉尔",
"away": "萨德",
}]
# 这里面有需要的 matchId,有一个相同的 id 来关联它们
event_name_from_dict = [{
"id": "周二 001",
"matchId": 1798094,
}]

# 从数据库提取的部分就不说了
# 首先会从 matchId 的列表中进行提取并处理
# 提取后的数据以 where 条件做键,对应值
event_id_and_match = dict()
for event_id in event_name_from_dict:
event_id_and_match[event_id["id"]] = event_id["matchId"]
print(event_id_and_match) # {'周二 001': 1798094}

# 然后是进行整合匹配
for event in event_data_list:
# 根据 id 这个键去提取需要的值,字典取值效率是非常高的
# 可以避免用循环嵌套的方式来比对
event['matchId'] = event_id_and_match[event['id']]
# 3.6 以后字典是有序的,如果你要提交数据库可以直接转 tuple(当然不能过度依赖字典的有序)
print(event) # {'id': '周二 001', 'matchTime': '2019/10/23 0:15:00', 'league': '亚冠杯', 'home': '希拉尔', 'away': '萨德', 'matchId': 1798094}
print(tuple(event.values())) # ('周二 001', '2019/10/23 0:15:00', '亚冠杯', '希拉尔', '萨德', 1798094)
```
程序的一部分内容就是这样了,因为有点擦边球的东西,所以我删掉了数据的大部分内容.
本人水平比较低,只能写这样,大佬就不要口吐莲花了。
2019-12-01 14:51:47 +08:00
回复了 dolaxi 创建的主题 Python Django 模型类的存储结构设计
@dolaxi 除非你只记录一次 log,否则还是加个表。
2019-12-01 03:40:36 +08:00
回复了 Youngxj 创建的主题 程序员 使用 PHP 批量抓取 QQ 空间相册链接
新爬虫技能 get !😅
成都瑟瑟发抖的看着你们
这让我想起了做外包的时候接的单子,老板接的 SQL Server 迁移,拿过来发现,两边的表数量不一致,这就算了,后来我还发现表结构都不一致……
2019-11-30 16:56:51 +08:00
回复了 renantianxia8 创建的主题 Python Python 太难找工作了
@sylvos 我只能说说我那个程序的思路哈,毕竟不知道你的实际情况。
1.最开始我是硬循环嵌套强行做 if 匹配,后来优化当然第一件事就是干掉它,尽量在提取数据之初限定条件,这个条件一般是就是 where 条件,能极大减少循环次数。
2.如果有数据需要从别的地方拿,尽量先提取一次做成字典,把 if 条件之类的通过键的形式直接取值,这样做可以把 where 的匹配时间降到最低,还能去掉循环嵌套。
3.我当时数据是丢数据库的,设计库的时候字段也最好定好,可以以空间换时间,还得把 where 条件做索引,如果涉及到入库,最好先把要存的每条数据做成元组存进列表,通过数据库包的 executemany 方法来提交到数据库,能节省相当多的时间,数据库连接对象也要避免多次创建。
4.numpy 最好用 anaconda 来做,它会包含很多算法库,能极大提升性能,
当时我的数据并没有那么多,整合清洗完成大概 14000 条,但是需要的数据分离在不同的地方,相当于说需要用 where 条件来匹配数据,循环嵌套硬匹配,那循环次数好几亿就太多了,O(n^2)了。做成字典去对应数据,通过键直接去拿我要的,时间上只花了构造字典的循环以及拿数据匹配的循环。
2019-11-29 22:20:02 +08:00
回复了 renantianxia8 创建的主题 Python Python 太难找工作了
@encro Python 的 IDE,就我而言只有 PyCharm 才能好好当成提高效率的工具。
至于高质量的库还是有很多,这些知名库都是好团队组织在维护,Django,Numpy,Pandas 之类。
但是 Python 想精通想用的好确实难,曲线一下子就上去了,七八十度的陡坡。
Python 多数都是外包才招人,招到的多数都是新手,新手写的东西,效率堪忧。
之前也是有人找我教他 Python,想自己写点东西,后来发现学不会,他的工具就都让我做了开发了,因为不是给他教学了,所以给的钱完全支撑不起给他做项目,写的就很随便,没去优化任何东西,能用就行。结果数据处理一趟下来要花近 2 分钟,后来是我自己看不下去,花了一天做了优化,时间缩减到 8 秒,然后找他要了点钱...这波操作反正有点迷。
2019-11-29 21:11:51 +08:00
回复了 1419co1in 创建的主题 Python Python 代码的加密问题
@0x5f 这个挺狠。。。话说以前我做外包的时候老板就是让我们搞这种,我们顶多做个 pyc 罢了。。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2816 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 09:20 · PVG 17:20 · LAX 01:20 · JFK 04:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.