#4 楼 @wangfeng3769 前提是,他们能访问么? #3 楼 @rei Hacker News 大赞,不过可能不大适合楼主现在的情况。评论一大段一大段的英文,我读偶尔还会碰到生词。但是有机会一定要看看。
中文社区的话,以前知乎和 V2EX 也是能看的,现在不好说了...
除了 Google 和 StackOverflow 之外,作为一个学生(不管是什么专业的)我觉得 Wikipedia 是必不可少的。
考虑到现实情况,可以推荐几个个人博客订阅。个人博客由于是相对独立的东西,所以中英文内容质量差距我觉得并不大(当然国外有不少全是长篇大论的博客),我刚开始常去的是 coolshell.cn,阮一峰的博客 也可以看看
#39 楼 @greatghoul 我个人是不大喜欢使用你所描述的那种方式的。主观原因无非是我觉得这已经踩到所谓“trick”,“奇技淫巧”,“hack”的边缘了。客观上来说适当的使用 list comprehension 也是更加 Pythonic 的方式,而且 Python 的所谓哲学强调特定的事情只用一种特定的方式来实现。
这里稍微多说一点,避免不必要的误解,也希望能给大家略微开阔一下思路。我感觉 Python 这个语言表面上看勉强算是“优雅”(这依然是有争议的),但是稍微往深处走一些,就会发现仅仅在 Python 这个核心中,出于各种原因,就存在着许多看上去不那么优雅的东西,包括许多的“hack”。仅就我个人所知举例来说,我不喜欢在标识符头尾出现的各种下划线,不喜欢 Python 受限的 lambda 和蛋疼的作用域、闭包,讨厌 Python 2 和 py3k 的分裂,Python 的面向对象也有一些混乱。但是同样出于各种原因,Python 确实有足够的灵活性,也确实足够强大,所以很有用,但是在语法层面我并不觉得 Python 十分高明。
依然是 digression 内容,对于编程语言(的语法)这个问题,存在两种看法,一种认为编程语言应该类似自然语言,同时“易写”“易读”,另一种认为应该尽量严格,专业,就算外行人看了完全不明觉厉也无所谓,同时应该“易写”“易读”。注意这两个“易读”是不同的,前者是说我看了代码立马就知道是什么意思,因为很像自然语言,很符合一般人的思维,后者是说我看了代码立马就知道是什么意思,因为逻辑体现的很严密,很“explicit”,很符合数学家的习惯。在我所接触的范围里,前者的极端是 AppleScript,后者的极端是 C++。
我之所以特别关注这个问题,是因为我一直需要一种语言作为游戏引擎的脚本语言。我希望它能用优雅的语法定义引擎中的逻辑,因为引擎主要是面向非程序员的,所以要求直观,门槛低。我个人认为从理论上来讲,最合适的是 Ruby,因为其实我需要的是一种灵活的 DSL,这确实是 Ruby 所擅长的。但是 Ruby 和 Python 在一开始就因为性能等其他问题被否掉了。我尝试过 Lua,我认为 Lua 在理论层面上的设计是十分优雅的,同时借助 LuaJIT,可以获得不凡的性能。但是 Lua 的特性集为了保持其优雅和轻量搞得有些局限,并不足以满足我的需求,并且因此也产生了很多类似 Python 中的 "hack"(具体可以参考云风等人的博客和作品)。现在在尝试 JavaScript,我承认 JavaScript 确实也十分 dirty,但是确实很灵活,经过变态的优化之后速度也很好。不过我并不打算直接用 JavaScript 解决问题,而是借助于建立在其基础上的更加优雅的 CoffeeScript,以及更加严格的 TypeScript,所以说生态圈也算是 JavaScript 的另一大优势。
#24 楼 @greatghoul 不是可以 [[s.upper() for s in l] for l in ll]
么?