V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kevinyoung  ›  全部回复第 5 页 / 共 7 页
回复总数  122
1  2  3  4  5  6  7  
2014-09-01 15:35:50 +08:00
回复了 kevinyoung 创建的主题 MacBook Pro 关于给笔记本上锁...
@loading 有道理,抽屉加锁这个方案我看可以
2014-09-01 12:10:26 +08:00
回复了 kevinyoung 创建的主题 MacBook Pro 关于给笔记本上锁...
@0x61 花这么多钱买个电脑扔家里不用这事儿不能忍...而且本来就是防止有人一时起意,真是有意而为之那我也没办法了
2014-09-01 12:04:34 +08:00
回复了 kevinyoung 创建的主题 MacBook Pro 关于给笔记本上锁...
@lcx412 所以就是用了拿出来,不用了就塞柜子里?倒是有柜子,但非常不牢靠,不过经你这么一说,我觉得倒是可以放在我桌子下面的抽屉里
2014-09-01 12:02:13 +08:00
回复了 kevinyoung 创建的主题 MacBook Pro 关于给笔记本上锁...
@Jimrussell 全赖师兄们抬爱,本人已被评为实验室第一高富帅...已经非常不自在了
2014-09-01 11:58:09 +08:00
回复了 kevinyoung 创建的主题 MacBook Pro 关于给笔记本上锁...
@Henrybsbhp
@jiayao321
@Jimrussell
@SoloCompany
@mhycy
@zakokun
@Yvette

没想到大家意见如此一致...包是有,也不是背不动,不过好比是吃饭,午睡,出去跑步这种一天几次,没多久就回来的事情,怕是时间久了我也坚持不下来,况且晚上睡觉带回宿舍未必就比放实验室强...

我决定还是买一个,平常尽量自己带着,实在不行了再锁上,顾不上别人怎么看了,这种东西又不能当饭吃
2014-08-26 14:51:13 +08:00
回复了 Joysisyphus 创建的主题 macOS 有人在用 alfred 中「虾米」的 workflow 吗?
看了一下应该是脚本里面搜索用的api失效了,没找到最新的接口,不知道是不是官方已经关闭了相关服务,so..
2014-08-26 14:37:47 +08:00
回复了 rulerstorm 创建的主题 macOS 给几个朋友写了篇 Mac 入门攻略,与大家共享。
为了mac入门我把http://book.douban.com/subject/25773326/ 这书都翻了一遍,现在在看applescript
2014-08-10 14:29:07 +08:00
回复了 Eyon 创建的主题 Python 新手再提问关于 list 排序
@Eyon 我觉得你可能有一些过程式编程的底子,而这里讨论的sort方法则有函数式编程的意味,所以给你造成了一些困扰,下面我试着解释一下。

python本身包含深广,除了显见的过程式和面向对象思想以外,Guido也借鉴了一些他认为的函数式编程里面好的思想,与这里的问题相关的也是比较重要的一个就是:函数在python里面是first class的,和其他的变量啦、对象啦一样,是一等公民,当然这术语你可以不必理会,只需要知道对于函数f,你可以f()调用,可以g=f赋值,也可以把f当成是参数传递给其他函数,甚至可以把f当成一个函数的返回值返回出来。

下面回到问题本身,list的sort方法可以接收一个函数作为参数,上面的lst.sort(key=get_age)就是把get_age这个函数作为参数传递进sort中去了。

而且lz你的理解是正确的,函数只有被调用之后才有意义,只是这里的调用不是显式进行的,而是由系统帮你完成的。至于是如何完成的,下面可能要绕一个弯子。

sort这个函数稍微复杂一些,我想换一个类似但简单一些的例子,也就是python的另一个内置函数map,如果你能理解map,sort就不成问题了,而且在实战中map的用途也更为广泛。map的官方解释在此https://docs.python.org/2/library/functions.html#map ,其实已经介绍的很详细了,但我知道一开始还是很难接受,没事,接着看。map的函数签名是map(function, iterable),他的第一个参数是一个函数,第二个参数是一个可迭代对象,典型的例子就是列表,再看map的返回值,比如我调用:

map(f, [item1, item2, item3])

将返回:

[f(item1), f(item2), f(item3)]

那lz你会说,在哪儿调用的呢?当然在map函数的实现中了,下面可以写一个乞丐版的map实现:

def map(func, iterable):
____result = []
____for item in iterable:
________result.append(func(item))
____return result

python的标准库实现要复杂的多,但本质上就是这样。上面的map实现,就是lz更加熟悉的过程式编程了,而直接调用map(f, iters)则有函数式编程的意味,注意两者的区别:前者关注的是如何完成这件事,后者关注的是干了什么。

那么为什么要用函数式编程呢?因为它更短更易读,所以出错的机会少。lz可能会说,明明是for循环更易读啊,那只是你看的多习惯了而已。近年来的高级语言有一个趋势,就是试图消除for循环,而用诸如map这样的高阶函数来取代。lz在学习python的过程中势必有一天要回过头去,将你以前的代码用高阶函数重写,那时你的技艺也会提升一个等级。

好像扯远了,我们回到sort上来。这里的sort是lst的一个方法,如果lz你知道类怎么写的话就知道在列表类的定义中,sort方法默认的第一个参数是self,也就是lst自己,所以lst.sort(key=f)本质上就是sort(lst, key=f),是不是和上面的map很像,在背后的实现中当然也有类似map的将f分别作用于lst的每个元素,并得到一个返回值,然后根据返回值进行排序,再将排序好的列表返回出来,具体的实现就不写了。
2014-08-09 11:48:02 +08:00
回复了 Eyon 创建的主题 Python 新手再提问关于 list 排序
@Eyon 你给的截图就是按照地名(beijing、shanghai、hongkong、sichuan)排序的结果没错啊。

关于排序时key这个东西,默认情况下是None,那么排序依据是系统默认的那一套,比如lz给出的列表默认排序的话是按照每一个子列表的第一个元素的先后顺序来的。

如果想自己指定排序规则,就需要显式地给出关键字参数key=f,其中f必须是一个函数。比如我们要对[item1, item2, item3]排序(注意这里的items可以是任何东西),在指定了key之后系统先将待排序的列表的每一个元素传递进f中,得到一个由返回值组成的列表[f(item1), f(item2), f(item3)],并对这个返回值列表进行排序,排序完了再把每个返回值替换会初始值就是最终结果了。当然上面只是打个比方,python实际上可能不是这么干的。

关于lambda,lambda是匿名函数的关键字。前面说到必须用一个函数给key赋值,比如按照一楼给出的lst.sort(key=lambda i: int(i[1]))按照年龄排序,你完全可以这样写:

def get_age(person):
age = person[1]
return int(age)
lst.sort(key=get_age)

这里的get_age函数和lambda i: int(i[10])是等价的,你应该也看明白了,对于lambda函数,i就是参数,冒号后面的一坨是返回值。用lambda的好处是不必给函数起名字,方便省事可读性好,尤其适用于map,reduce,sorted(请查看官方文档builtin function部分)这样以函数为参数的高阶函数,习惯后就离不开了。
2014-08-04 18:26:06 +08:00
回复了 kevinyoung 创建的主题 macOS 奔跑着歌颂一个 OS X 的配置指南
@precisi0nux 挑自己需要的装就行吧,教程本身是写个大众看的,各种需求总还是要照顾一下
2014-08-04 18:24:35 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@robertlyc 哈哈,被发现了
2014-08-04 18:20:07 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
2014-08-04 18:17:34 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@jamesxu 加油吧~ 贵在坚持
2014-08-04 18:17:18 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@jylee 年轻才是最大的本钱,如果你真的想学,每天抽出一两个小时两三年下来怎么也能小成了,加油吧少年
2014-08-04 18:15:35 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@haisua 主要是那时候听说有人可以看美剧不挂字幕真是太牛逼了就想自己也试试,现在可以了发现确实很爽,哈哈
2014-08-04 18:13:42 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@qiayue 书出来的时候我买了好几本送人,也算是支持了。听说电子版确实挺便宜的
2014-08-04 18:12:01 +08:00
回复了 kevinyoung 创建的主题 程序员 就再奔跑着歌颂一个英语学习资源吧
@Biwood 他的书很棒,其他言论则不予评价
@mornlight 家里所有的设备:一个pc,一个mac,三个iphone,一个ipad,同时连了四五台设备的情景比较常见吧
2014-08-04 13:33:08 +08:00
回复了 kevinyoung 创建的主题 macOS 奔跑着歌颂一个 OS X 的配置指南
@watsy0007 已更正
@vibbow 不至于吧..
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5696 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.