Beginning Python: From Novice to Professional, Second Edition
2010-09-04 21:45
483 查看
中文版p83页:
girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0], []).append(girl)
print ([b+'+'+g for b in boys for g in letterGirls[b[0]]])
输出结果:
>>>
['chris+clarice', 'arnold+alice', 'bob+bernice']
原理:
>>> girls = ['alice', 'bernice', 'clarice']
>>> letterGirls = {}
>>> for girl in girls:
letterGirls.setdefault(girl[0], []).append(girl)
>>> print letterGirls
{'a': ['alice'], 'c': ['clarice'], 'b': ['bernice']}
letterGirls.setdefault(girl[0], [])
'a':[]
letterGirls.setdefault(girl[0], []).append(girl)
'a':['alice']
如此便是个很好的方法。
p91:
斐波那契数列:
def fibs(num):
result = [0, 1]
for i in range(num-2):
result.append(result[-2] + result[-1])
return result
num = input('How many Fibonacci numbers do you want? ')
print fibs(num)
阶乘:
递归版本
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
非递归:
def factorial(n):
result = n
for i in range(1,n):
result *= i
return result
power函数:
递归
def power(x, n):
if n == 0:
return 1
else:
return x * power(x, n-1)
非递归
def pow(x,n):
result = 1
for i in range(n):
result *= x
resturn result
二分查找:
def search(sequence, number, lower=0, upper=None):
if upper is None: upper = len(sequence)-1
if lower == upper:
assert number == sequence[upper]
return upper
else:
middle = (lower + upper) // 2
if number > sequence[middle]:
return search(sequence, number, middle+1, upper)
else:
return search(sequence, number, lower, middle)
girls = ['alice', 'bernice', 'clarice']
boys = ['chris', 'arnold', 'bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0], []).append(girl)
print ([b+'+'+g for b in boys for g in letterGirls[b[0]]])
输出结果:
>>>
['chris+clarice', 'arnold+alice', 'bob+bernice']
原理:
>>> girls = ['alice', 'bernice', 'clarice']
>>> letterGirls = {}
>>> for girl in girls:
letterGirls.setdefault(girl[0], []).append(girl)
>>> print letterGirls
{'a': ['alice'], 'c': ['clarice'], 'b': ['bernice']}
letterGirls.setdefault(girl[0], [])
'a':[]
letterGirls.setdefault(girl[0], []).append(girl)
'a':['alice']
如此便是个很好的方法。
p91:
斐波那契数列:
def fibs(num):
result = [0, 1]
for i in range(num-2):
result.append(result[-2] + result[-1])
return result
num = input('How many Fibonacci numbers do you want? ')
print fibs(num)
阶乘:
递归版本
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
非递归:
def factorial(n):
result = n
for i in range(1,n):
result *= i
return result
power函数:
递归
def power(x, n):
if n == 0:
return 1
else:
return x * power(x, n-1)
非递归
def pow(x,n):
result = 1
for i in range(n):
result *= x
resturn result
二分查找:
def search(sequence, number, lower=0, upper=None):
if upper is None: upper = len(sequence)-1
if lower == upper:
assert number == sequence[upper]
return upper
else:
middle = (lower + upper) // 2
if number > sequence[middle]:
return search(sequence, number, middle+1, upper)
else:
return search(sequence, number, lower, middle)
相关文章推荐
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(1)
- Beginning Ubuntu LTS Server Administration: From Novice to Professional, Second Edition
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(2)
- Beginning ASP.NET 3.5 in VB 2008: From Novice to Professional, Second Edition
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(3)
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(4)
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(5)
- 《Beginning Python From Novice to Professional》学习笔记十一:__Magic__
- Beginning Python From Novice to Professional (7) - 类别
- Beginning Python: From Novice to Professional
- 《Beginning Python From Novice to Professional》学习笔记十:Exception
- 《Beginning Python From Novice to Professional》学习笔记十二:__Magic__
- Beginning Python From Novice to Professional (6) - 函数使用
- Beginning Python From Novice to Professional (2) - 命令行运行Python脚本
- Beginning Python From Novice to Professional (9) - Socket
- Beginning Python From Novice To Professional读书笔记
- Beginning C# 2008: From Novice to Professional, Second Edition
- Beginning Python From Novice to Professional (8) - 文件方法
- 《Beginning Python From Novice to Professional》学习笔记九:More Abstraction