【发布时间】:2016-06-20 03:30:20
【问题描述】:
import re
import string
def buildRule((pattern, search, replace)):
return lambda word: re.search(pattern, word) and re.sub(search, replace, word) 1
def plural(noun, language='en'): 2
lines = file('rules.%s' % language).readlines() 3
patterns = map(string.split, lines) 4
rules = map(buildRule, patterns) 5
for rule in rules:
result = rule(noun) 6
if result: return result
发件人:http://www.diveintopython.net/dynamic_functions/stage5.html
上面的代码按预期工作。但是buildRule 需要元组,但在上面注释为 5 的行中传递了一个列表。
python 会自动进行转换吗?如果是,那么一般规则是什么?
我在网上搜索过,但找不到任何有用的东西。
【问题讨论】:
-
是的,Python 会自动进行转换;它实际上是一个多值赋值,参见例如stackoverflow.com/a/29676756/3001761。请注意,此语法为no longer valid in 3.x。
-
顺便说一句,作者在diveintopython3.net也有一本书在线Python 3。
-
@AnttiHaapala 是的,在我读到旧书的一半以上之后,我意识到这一点。我决定完成我开始的那本,因为新书的结构似乎完全不同,所以我不得不从头开始。
标签: python list type-conversion tuples python-2.x