__all__ = 'get', 'post', 'delete'
a = 1, 2, 3, \
4, 5, 6
因为大部分情况我们只是要一个列表,用tuple和list是一样的,而tuple不可更改的特性要好一点点,性能上我测过,tuple只比list微强。
a = (1, 2, 3)
b = ('one', )
bulk_load((1, 2, 3))
a = [1, 2, 3]
bulk_load([1, 2, 3])
1
neoblackcap 2015-06-17 12:01:16 +08:00 1
首先,第一种是tuple不是list,你得到的是一个iterable的对象而已。
其二,你这个标题有明显的误导,我看了只有tuple跟list的使用而已,没看到所谓的三种list写法。要知道list跟tuple还是很大的不同,就不能变更这个特性就影响够大的了。 |
2
love OP @neoblackcap 我这里中文的列表就是指list或tuple,英文的表示python里的意思
|
3
neoblackcap 2015-06-17 12:08:30 +08:00 1
@love 我虽然读得书少,但是你这个列表放哪里的python社区都之会认为是list,tuple中文翻译我引用《python基础教程(第二版)》中的翻译为“元组”
|
4
echo1937 2015-06-17 12:15:11 +08:00
你写的不是列表,是元组呐,2者都是序列,但差别还是很大的。
|
5
ca1n 2015-06-17 12:15:13 +08:00
既然知道tuple的不可更改性, 那么就也应该知道这两这不能混用
|
6
love OP @neoblackcap 好吧这里知道什么意思就行了。我一向反对在技术文章里把程序中用到的名字类型什么的翻成中文的,因为你程序里还是要写英文的,搞成中文的没有什么意思,反而不利于学习。
|
7
mhycy 2015-06-17 12:17:06 +08:00
啥时候元组与列表可以混用了。。。这是坏习惯,得改。
|
9
kingname 2015-06-17 12:21:22 +08:00
显而易见楼主是新手。
|
10
zenliver 2015-06-17 12:21:23 +08:00
不同的数据结构, 和写法有毛关系
|
11
love OP 楼上的不要纠结这个问题了,我改。
这二者的区别我懂,我是说都可以的情况下用哪个: 大部分参数只是需要一个sequence,比如标准函数sum: sum((1, 2, 3)) sum([1, 2, 3]) |
12
neoblackcap 2015-06-17 12:27:40 +08:00 1
@love 这个只是需要一个可迭代的对象而已,我传迭代器进去都可以
|
13
Tiande 2015-06-17 12:30:36 +08:00 1
楼主认个错就不会有人喷了。
混了数据结构可没啥好解释的。 |
14
love OP @neoblackcap 我说的是代码风格,是用()还是[],就象js行尾加不加分号,在需要一个sequence的情况下喜欢用哪个,你们真的不知道我说的是什么吗
|
15
neoblackcap 2015-06-17 12:37:18 +08:00
@love 我理解你在说什么,但是我只是支出你的想法的根基没有依据,你说需要一个sequence的时候并不是真正需要一个sequence,那是需要一个iterable,一个可迭代的对象而已,你这根基无疑是海市蜃楼。你这样对文档的理解是不对的。
|
16
johnsmith123 2015-06-17 12:52:49 +08:00
LZ需要新手大礼包吗?
|
17
lingo233 2015-06-17 13:01:02 +08:00
(-。-;)我喜欢这样写
'列表' = 'value value1 value3'.split() #(雾 |
19
staticor 2015-06-17 13:11:35 +08:00 1
从一个code style变成了code review, 人间的欢喜.
|
22
qaulau 2015-06-17 13:38:58 +08:00
楼主加入很早呀,难道以前都在水
|
23
holmesabc 2015-06-17 13:44:02 +08:00
话说根着喷人的,倒是一大堆.
喷完, 麻烦也回答一下别人的问题呗... |
24
101 2015-06-17 13:45:09 +08:00
我用第三种
|
25
love OP 看了下我竟然是10年加入的,楼上的喷子们你们都没我资格老吧还敢瞎喷
|
26
hahastudio 2015-06-17 14:00:27 +08:00
http://stackoverflow.com/questions/626759/whats-the-difference-between-list-and-tuples
如果你不明白 tuple 和 list 的区别,可以问 如果你不明白 Data Structure 和 Code Style 的区别,也可以问 对我个人而言,是这样用的: 1. 手写小片段的话,随意,一般用 list,因为 [] 不用 shift 2. 写接口的话,你就要注意了,一般一个 tuple 被当成一个单独的数据,list 里面装一组数据 不过,更多的时候我会写 generator 就是了= = |
27
hahastudio 2015-06-17 14:01:38 +08:00
@love 所以你说明了为什么依靠注册时间定义智商是不明智的
|
29
zhyu 2015-06-17 14:31:45 +08:00
建议看看 http://coolshell.cn/articles/10804.html
其实你想问的是,在需要一个 iterable 对象的时候,习惯用 list 还是 tuple 吧 个人习惯是能用 generator 最好,其次是 list,tuple 由于其不可变的特性,一般当作一个单位元素用,比如坐标表示 (x, y) |
30
Kabie 2015-06-17 14:34:17 +08:00
当然要[1,2,3,]
|
31
love OP @hahastudio 唉早说了我不是问list和tuple的区别,这二个的区别入门python五分钟都全知道。
我是说 sock = socket.create_connection(('127.0.0.1', 8080)) 还是 sock = socket.create_connection(['127.0.0.1', 8080]) @ca1n 字典就扯太远了吧 |
32
hahastudio 2015-06-17 14:49:43 +08:00
@love 你这就没意思了,如果你一开始就问 socket.create_connection 大家喜欢写哪个的话,那不就结了
我喜欢 ('127.0.0.1', 8080) |
33
11 2015-06-17 14:56:29 +08:00 2
@love
socket.create_connection(address[, timeout[, source_address]]) Connect to a TCP service listening on the Internet address (a 2-tuple (host, port)), and return the socket object. @hahastudio 所以 lz 还是没看文档 |
34
lilydjwg 2015-06-17 15:03:21 +08:00
一和二是风格,三是习惯但不是风格因为不等价。
我的原则是: 1. 能不用 \ 续行就不用。需要续行时先看看 () 能用不 2. 能不写括号就不写 3. 能用 tuple 就不用 list |
35
ffffwh 2015-06-17 15:32:34 +08:00
可以这样嘛
cons = lambda x, y: lambda f: f(x, y) head = lambda l: l(lambda x, y: x) tail = lambda l: l(lambda x, y: y) |
38
Delbert 2015-06-17 16:50:27 +08:00 via Android
|
39
ryd994 2015-06-18 03:26:11 +08:00
常量用tuple性能更好
list当容器用 |
40
ryd994 2015-06-18 03:27:59 +08:00
用tuple我还是会写括号的
不写括号太作,改代码容易出事 |
41
bybyisking 2015-06-18 10:56:15 +08:00
换行别用\了,用括号...
|
42
herojaxy 2015-06-18 12:14:49 +08:00 1
LZ你的标题确实有一些歧义,不过我相信大部分理解能力正常的人在看过内容后其实都明白你的意思。
不过有些人就喜欢故意装糊涂,非要指出楼主的错误,享受教育别人的优越感。列表是指list哦,跟tuple两个概念哦,楼主还要加强学习哦。好像谁不知道似的。 |