Skip to content

Instantly share code, notes, and snippets.

View sincerefly's full-sized avatar
😀
working...

Yieldone sincerefly

😀
working...
View GitHub Profile
@sincerefly
sincerefly / pythonic
Created April 30, 2015 04:50
返回列表内数值的平方和
# 方法1
def square_sum(numbers):
return sum(x**2 for x in numbers)
# 方法2
def square_sum2(numbers):
return sum(map(lambda x: x**2, numbers))
# 方法3
def square_sum(numbers):
@sincerefly
sincerefly / pythonic
Created April 30, 2015 04:14
判断列表中某一元素有多少个
# 这个是一个很程序化的写法,但是没有利用好python的特性
def number_of_occurrences(s, xs):
num = 0
for i in sorted(xs):
if i == s:
num += 1
return num
# 这种写法就很pythonic
def number_of_occurrences2(s, xs):
@sincerefly
sincerefly / pythonic
Created April 30, 2015 02:12
编写一个函数,接受两个参数,返回列表中最大的n个数字以列表形式返回
# 这次终于算是比较满意的符合pythonic的解决方式了
def largest(n, xs):
return sorted(xs)[len(xs)-n:]
print largest(2, [10,9,8,7,6,5,4,3,2,1])
# 不过看到一个更简洁的写法,好简洁,python真的是魅力无穷
def largest(n, xs):
"Find the n highest elements in a list"
@sincerefly
sincerefly / pythonic
Created April 29, 2015 13:26
判断吸血鬼数
#吸血鬼数: http://zh.wikipedia.org/wiki/%E5%90%B8%E8%A1%80%E9%AC%BC%E6%95%B8
def vampire_test(x, y):
print sorted(str(x) + str(y))
return sorted(str(x * y)) == sorted(str(x) + str(y))
print vampire_test(21, 6)
# result: True
@sincerefly
sincerefly / pythonic
Last active August 29, 2015 14:20
一个通过for...in...if...生成列表的例子
a = range(1,11)
b = range(1,10)
c = sum([item for item in a if item in b])
print c
# result: 45
@sincerefly
sincerefly / pythonic
Created April 29, 2015 11:44
使用set去重,维持原列表顺序
def unique(integers):
int_list = list(set(integers))
int_list.sort(key = integers.index)
return int_list
print unique([4, 1, 2, 4, 3])
# result [4, 1, 2, 3]
@sincerefly
sincerefly / pythonic
Last active August 29, 2015 14:20
python的__builtins__使用,修改了sum函数,使得sum接受sum(1, 2, 3)这样的使用方式
def sum(*args):
return __builtins__.sum(filter(lambda x: type(x) == int, args))
print sum(1, 2, 3)