
1 nervouna 2013-02-25 11:33:14 +08:00 dict() 可读性更高,这个问题萝卜白菜吧。 |
2 TankyWoo OP |
3 jybox 2013-02-25 12:35:12 +08:00 我不是很了解Python, 但类似这样的争议在其他语言也有. 我觉得还是应该从编写方便、可读性方面来考虑, 至于解释器的问题, 如果问题明显, 人家早晚会改正的, 不明显的话忽略就是了. |
4 G0dBlessMe 2013-02-25 12:40:05 +08:00 dict() |
5 ipconfiger 2013-02-25 13:39:14 +08:00 这么用类似于 def d(**kwargs): return kwargs 然后就可以 d(a=1,b=2) 其实dict还可以 dict([("a",1),("b",2)]) |
6 TankyWoo OP |
7 tonyseek 2013-02-25 14:41:46 +08:00 大多数情况下第一眼看到 {} 会想到这是一个映射结构,因为 Python、Ruby、Javascript 等语言都这么约定的,所以我不觉得 {} 的可读性不如 dict() |
9 TankyWoo OP |
10 hit9 2013-02-25 16:28:47 +08:00 dict() 我也不知道为森么 |
11 wenbinwu 2013-02-25 16:42:45 +08:00 dict() |
12 CoX 2013-02-25 17:19:06 +08:00 {} 感觉很省事啊 |
13 windviki 2013-02-25 17:24:07 +08:00 直接初始化还是觉得{}好看。 dict comprehension在python2.6不行,要兼容的时候就只好dict([(), ()])这样了,里面的list用list comprehension生成。 |
14 wenbinwu 2013-02-25 20:07:22 +08:00 联想一下, list是用list()还是[] |
15 Mattsive 2013-02-27 17:34:31 +08:00 http://doughellmann.com/2012/11/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2.html dict() 的效率比 {} 要慢好几倍,但为了代码的直观性还是建议用 dict() |
17 zhangxiao 2013-02-28 00:04:55 +08:00 {},可能js带的习惯吧 |
18 est 2013-02-28 08:35:59 +08:00 新建空dict用 a = {} 深复制dict用 a = dict(b, newkey='newval') 更加优雅。 |
19 mengzhuo 2013-02-28 10:06:24 +08:00 {} 这个才是Pythonic的写法 再说字典推导的时候能用dict()吗~ |
20 TankyWoo OP @mengzhuo In [1]: lst = [1,2,3] In [2]: dic = dict([(v, v*2) for v in lst]) In [3]: dic Out[3]: {1: 2, 2: 4, 3: 6} dict()也可以实现的,不过麻烦些 |
22 Js 2013-02-28 11:15:46 +08:00 不是海量创建字典还是用dict这个函数吧 python新搞出了个{}创建set的语法, 一不小心把{'a':'b'}敲成{'a','b'}又没发现就了 |
23 TankyWoo OP |
24 Smartype 2013-02-28 15:10:33 +08:00 ia iPad [], {} 都是Python的优点。 非要说dict()易读,呵呵 |
25 TankyWoo OP |
26 nervouna 2013-03-05 15:45:39 +08:00 @Smartype 比方说,用两个 list 做字典 keys = ['a', 'b', 'c'] values = [1, 2, 3] # 用 {} D1 = {} for (k, v) in zip(keys, values): D[k] = v # 用 dict() D2 = dict(zip(keys, values)) dict() 看起来会稍微直观一些。 追求效率的话就用 C 去实现啦。 |
27 Smartype 2013-03-05 17:04:32 +08:00 @nervouna 真没有什么有意义的理由。你这样就是为了了答案而出题。 真不知道为什么不直接那样写。 D1 = { 'a': 1, 'b': 2, 'c': 3 } 习惯而已。其实不所谓好坏。我就觉得{}少敲几下键盘,也及其直观。任何语言都是要考虑效率的,当然不同语言对效率的要求不一样。最好别说Python不在乎效率,在乎效率就得用C。 |
28 Smartype 2013-03-05 17:07:56 +08:00 这么说吧,静态 dict 当然直接用 {}, 动态构造显然 dict() 更方便 |
29 nervouna 2013-03-06 07:05:17 +08:00 @Smartype 啊,而已。我有牛角尖了,哈哈。 另,我用 Python 就是了很快出原型,所以就有考效率。也是我明的地方。 |
30 TankyWoo OP |