/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
Forwarded from 任桑 今天开始做魔王
python这样写会慢
Forwarded from 任桑 今天开始做魔王
list
Forwarded from 任桑 今天开始做魔王
你可以自己测试一下,很容易的
Forwarded from Deleted Account
可是我只写应用,用户感受不到那”慢“啊
我只在乎代码好不好看,我觉得 (x in xs) 很直接
"dog" in animals 足够好看
Forwarded from 任桑 今天开始做魔王
跑不快的代码肯定是不好看的代码,而且你不是真的在乎好不好看,只是在为不熟悉语法进行辩解
Forwarded from 任桑 今天开始做魔王
多写写就好了
Forwarded from 任桑 今天开始做魔王
问题不大
Forwarded from Deleted Account
好,我这就来测试一下。

from time import perf_counter
def measureTime(op: callable) -> int:
started = perf_counter()
op(); ended = perf_counter()
return ended - started

def repeat(n, op: callable):
for _ in range(1, n):
op()



measureTime(lambda: repeat(100, lambda: print("wtf"))) #0.0015090369997778907

接下来我们就小小地测试一下 x in xsxs.__contains__(x)

COUNT = 1_000_000
list = [1, 2, 3]
measureTime(lambda: repeat(COUNT, lambda: 4 in list))
#0.3801817240018863
measureTime(lambda: repeat(COUNT, lambda: list.__contains__(4))) #0.5797258120001061


现在你说哪个快???是用 (x in xs) 好还是用 xs.__contains__(x) 好还是说你有其他方法?
Forwarded from Deleted Account
所以说我测试了,所以说请为你的”好看 必要 跑得快“ 这个逻辑 进行举证,或者质疑我的性能评测有问题。
Forwarded from Deleted Account
所以说你的这句没道理啊,你还有什么更快的方法,我这可以一并测试了。
Forwarded from 任桑 今天开始做魔王
实际上就是遍历,离开始的数近,时间就短
Forwarded from Deleted Account
好,我试试,但数据是 [1,2,3],你说我怎么给它转化成 dict?
这样吧,我 list = dict([(x, x) for x in list])
Forwarded from Deleted Account
群友,big-O notation 是 O(1), O(n),不是 o1 on……
Forwarded from 任桑 今天开始做魔王
因为list是无索引数组,查询的时候是遍历查询,所以建议不要用in list,我一开始是不是这么说的
Forwarded from 任桑 今天开始做魔王
算了,我去吃饭了
Forwarded from Deleted Account
所以你是说我”不懂语法“???我真的不是不懂这些基础数据结构啊……
Forwarded from Deleted Account
语法的实现是抽象的,我是这个意思,看你开始的时候是说”不要用 in“,没说”不要用 list“,这是在概论你所谓的”in“语法。
所以我不懂 HashSet?就看我是从 Java 群来的,这是一种偏见好不好……
Forwarded from Deleted Account
我真的觉得很草啊,怎么感觉这群友是误会我说 list 和 dict ”性能“不一样了的感觉
我没说 list 和 dict 啊,我是在反驳他开始说的”别用 (x in xs)“……

还有我理不理解语法和这个问题有什么关系,难道我真的不理解语法?……
Forwarded from Deleted Account
我那时候说的是 set,然后他在比较 list 和 dict,根本就不是一个抽象数据结构好不好……

而且他说”最好操作 dict 而不是 list“也会让人误会啊,因为有人就是要操作 list,和 dict 有啥关系……他说先转化为 dict 再查询不就好理解了……
Forwarded from Deleted Account
可是我们刚才谈的是 很大的数据存量,然后操作…… 而不是创建很多的 dict, list, set 实例……
Forwarded from 任桑 今天开始做魔王
不熟悉语法本身没什么丢人的,大家都在一点点抠一点点的看,一起探索交流,不清楚的地方大家会一起解释和探讨,你要觉得自己很厉害,听一帮都不知道是谁的群友为你讲解,让你感觉丢人,也没关系,开个小号到群里问就是了,不要在这里犟,大家都不开心,你也得不到提高