强迫症患者 python 列表写法的这三种风格你喜欢哪一种

2015-06-17 11:54:50 +08:00
 love

1. 括号能就省,不能省用()

__all__ = 'get', 'post', 'delete'
a = 1, 2, 3, \
    4, 5, 6

2. 能用()绝对不用[]

因为大部分情况我们只是要一个列表,用tuple和list是一样的,而tuple不可更改的特性要好一点点,性能上我测过,tuple只比list微强。

a = (1, 2, 3)
b = ('one', )
bulk_load((1, 2, 3))

3. 不管什么情况全用[]

a = [1, 2, 3]
bulk_load([1, 2, 3])
4728 次点击
所在节点    Python
42 条回复
neoblackcap
2015-06-17 12:01:16 +08:00
首先,第一种是tuple不是list,你得到的是一个iterable的对象而已。

其二,你这个标题有明显的误导,我看了只有tuple跟list的使用而已,没看到所谓的三种list写法。要知道list跟tuple还是很大的不同,就不能变更这个特性就影响够大的了。
love
2015-06-17 12:06:16 +08:00
@neoblackcap 我这里中文的列表就是指list或tuple,英文的表示python里的意思
neoblackcap
2015-06-17 12:08:30 +08:00
@love 我虽然读得书少,但是你这个列表放哪里的python社区都之会认为是list,tuple中文翻译我引用《python基础教程(第二版)》中的翻译为“元组”
echo1937
2015-06-17 12:15:11 +08:00
你写的不是列表,是元组呐,2者都是序列,但差别还是很大的。
ca1n
2015-06-17 12:15:13 +08:00
既然知道tuple的不可更改性, 那么就也应该知道这两这不能混用
love
2015-06-17 12:15:57 +08:00
@neoblackcap 好吧这里知道什么意思就行了。我一向反对在技术文章里把程序中用到的名字类型什么的翻成中文的,因为你程序里还是要写英文的,搞成中文的没有什么意思,反而不利于学习。
mhycy
2015-06-17 12:17:06 +08:00
啥时候元组与列表可以混用了。。。这是坏习惯,得改。
love
2015-06-17 12:19:18 +08:00
@ca1n 实际上大部分情况都是可以混用的,因为很多时候我们是只是需要一个sequence,除非你明确要一个可修改的列表。
kingname
2015-06-17 12:21:22 +08:00
显而易见楼主是新手。
zenliver
2015-06-17 12:21:23 +08:00
不同的数据结构, 和写法有毛关系
love
2015-06-17 12:23:49 +08:00
楼上的不要纠结这个问题了,我改。
这二者的区别我懂,我是说都可以的情况下用哪个:
大部分参数只是需要一个sequence,比如标准函数sum:
sum((1, 2, 3))
sum([1, 2, 3])
neoblackcap
2015-06-17 12:27:40 +08:00
@love 这个只是需要一个可迭代的对象而已,我传迭代器进去都可以
Tiande
2015-06-17 12:30:36 +08:00
楼主认个错就不会有人喷了。
混了数据结构可没啥好解释的。
love
2015-06-17 12:32:33 +08:00
@neoblackcap 我说的是代码风格,是用()还是[],就象js行尾加不加分号,在需要一个sequence的情况下喜欢用哪个,你们真的不知道我说的是什么吗
neoblackcap
2015-06-17 12:37:18 +08:00
@love 我理解你在说什么,但是我只是支出你的想法的根基没有依据,你说需要一个sequence的时候并不是真正需要一个sequence,那是需要一个iterable,一个可迭代的对象而已,你这根基无疑是海市蜃楼。你这样对文档的理解是不对的。
johnsmith123
2015-06-17 12:52:49 +08:00
LZ需要新手大礼包吗?
lingo233
2015-06-17 13:01:02 +08:00
(-。-;)我喜欢这样写
'列表' = 'value value1 value3'.split() #(雾
gkiwi
2015-06-17 13:05:26 +08:00
@lingo233 拖出去!
staticor
2015-06-17 13:11:35 +08:00
从一个code style变成了code review, 人间的欢喜.
20015jjw
2015-06-17 13:22:46 +08:00
@lingo233 6666

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/199214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX