boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - foo = bar if bar else {} 這種語法真的惡心到家
相关主题
Think Python
python得问题
Help: undefined symbol
有python大神吗?紧急求助呀!!谢谢!!!
mac升级到capitan, python ssl不好使了
FP有的,Python都有!
golang為什麼語法和關鍵詞這麼冷門?
两个class的交叉引用问题
如何取一个list的第i个element
请教 C++ std::list iterator 对 template class pointer 的应用问题
相关话题的讨论汇总
话题: bar话题: else话题: foo话题: python话题: iterable
进入Programming版参与讨论
1 (共1页)
t**r
发帖数: 3428
1
foo = bar if bar else {} 這種語法真的惡心到家
n*****j
发帖数: 18
2
我最不喜欢的风格是objective c, 其次ruby.
V*********r
发帖数: 666
3
foo = if bar then bar else {} 如何?

【在 t**r 的大作中提到】
: foo = bar if bar else {} 這種語法真的惡心到家
j******o
发帖数: 4219
4
很多人以能写one-liner为荣
z****u
发帖数: 185
5
what's wrong with it?

【在 t**r 的大作中提到】
: foo = bar if bar else {} 這種語法真的惡心到家
v*******e
发帖数: 11604
6

我们python男都喜欢这个语法。
[i for i in list if i else i+1]

【在 z****u 的大作中提到】
: what's wrong with it?
L***s
发帖数: 1148
7
你这个语法错误

【在 v*******e 的大作中提到】
:
: 我们python男都喜欢这个语法。
: [i for i in list if i else i+1]

v*******e
发帖数: 11604
8

改下:
[i if i else i+1for i in list ]

【在 L***s 的大作中提到】
: 你这个语法错误
L***s
发帖数: 1148
9

也是错的。list comprehension不能带else的。
正确语法是
[f(x) for x in iterable if p(x)]
等价于
map(f, filter(p, iterable))
也就是
result = []
for x in iterable:
if p(x):
result.append(f(x))
少打一些字罢了

【在 v*******e 的大作中提到】
:
: 改下:
: [i if i else i+1for i in list ]

w********m
发帖数: 1137
10
Actually it is about speed
相关主题
有python大神吗?紧急求助呀!!谢谢!!!
mac升级到capitan, python ssl不好使了
FP有的,Python都有!
golang為什麼語法和關鍵詞這麼冷門?
进入Programming版参与讨论
d******e
发帖数: 2265
11
bar or 0
by python male

【在 t**r 的大作中提到】
: foo = bar if bar else {} 這種語法真的惡心到家
L***s
发帖数: 1148
12

and-or compound expressions have different semantics
than, and cannot replace, if-else statements.
In Python community, it is almost always preferable
to use plain if-else statements when one needs branching.

【在 d******e 的大作中提到】
: bar or 0
: by python male

v*******e
发帖数: 11604
13
你的知识过时啦。
$ python
Python 2.7.5 (default, Sep 25 2014, 13:52:19)
[GCC 4.8.3 20140624 (Red Hat 4.8.3-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> myList=[0,1,2,3]
>>> [i if i else i+1 for i in myList]
[1, 1, 2, 3]

【在 L***s 的大作中提到】
:
: and-or compound expressions have different semantics
: than, and cannot replace, if-else statements.
: In Python community, it is almost always preferable
: to use plain if-else statements when one needs branching.

c********1
发帖数: 421
14
one-liner本身是值得提倡的
但真正简洁的one liner应该写成javascript语法,
foo = bar || {}
而不是python语法
foo = bar if bar else {}

【在 j******o 的大作中提到】
: 很多人以能写one-liner为荣
D*******a
发帖数: 3688
15
are you sure {} in "foo = bar || {}" will DEFINITELY NOT be evaluated?

【在 c********1 的大作中提到】
: one-liner本身是值得提倡的
: 但真正简洁的one liner应该写成javascript语法,
: foo = bar || {}
: 而不是python语法
: foo = bar if bar else {}

v*******e
发帖数: 11604
16

python的好,因为还可以 foo = f(bar) if test(bar) else g(bar)

【在 c********1 的大作中提到】
: one-liner本身是值得提倡的
: 但真正简洁的one liner应该写成javascript语法,
: foo = bar || {}
: 而不是python语法
: foo = bar if bar else {}

1 (共1页)
进入Programming版参与讨论
相关主题
请教 C++ std::list iterator 对 template class pointer 的应用问题
什么时候需要调用STL container的destructor?
Python擂台:算24点
问个python问题
javascript问题,怎么让浏览器下载一个文件不是直接打开? (转载)
问个小问题
感觉用python的人,属于程序员中的文艺青年那类的
组里一个资深人士今天严肃地对我说
看C码工写Python真是捉急
python要把@当作矩阵乘法算符
相关话题的讨论汇总
话题: bar话题: else话题: foo话题: python话题: iterable