python一行代码能干什么

1.摊平列表

#!/usr/bin/python
# coding: UTF-8
import itertools

a = [[1, 2], [3, 4], [5, 6]]
print list(itertools.chain.from_iterable(a))
print sum(a, [])
print [x for l in a for x in l]
a = [1, 2, [3, 4], [[5, 6], [7, 8]]]
flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
print flatten(a)

输出:

[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7, 8]

2.画心形

print'\n'.join([''.join([('PYTHON!'[(x-y)%7]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)])

3.Mandelbrot图像

print'\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else' 'for x in range(-80,20)])for y in range(-20,20)])

4.打印九九乘法表

print '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])

5.一行搞定字符串排序

print "".join((lambda x:(x.sort(),x)[1])(list('string')))

6.quicksort算法

qsort = lambda arr: len(arr) > 1 and  qsort(filter(lambda x: x<=arr[0], arr[1:] )) + arr[0:1] + qsort(filter(lambda x: x>arr[0], arr[1:] )) or arr

7.一行cmd实现一个python共享的服务器

python -m SimpleHTTPServer 8000

然后浏览器打开 localhost:8000,一个简易的web服务就开启了,我经常用这个来分享实验室里的电脑上的目录,这样在宿舍也可以方便地获取想要的资料了。
8.一行筛质数

print filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 1000))

9.可以打开浏览器,展示一幅漫画给你看

import antigravity

10.一行代码翻转字符串

print 'hello world'[::-1]

11.一行代码实现变量值互换

a, b = 1, 2; a, b = b, a 
print a, b

12.一行代码实现地址过滤

from itertools import compress

addresses = [
    '5412 N CLARK',
    '5148 N CLARK',
    '5800 E 58TH',
    '2122 N CLARK'
    '5645 N RAVENSWOOD',
    '1060 W ADDISON',
    '4801 N BROADWAY',
    '1039 W GRANVILLE',
]
print list(compress(addresses, [n > 5 for n in [0, 3, 10, 4, 1, 7, 6, 1]]))  # 列表大于5的地址的addresses

13.一行代码生成可以迭代的表达式

#!/usr/bin/python
# coding: UTF-8
g = (x ** 2 for x in xrange(10))
print next(g)
print next(g)
print next(g)
print next(g)
print list(x ** 3 for x in xrange(10))
print sum(x ** 3 for x in xrange(10))
print sum(x ** 3 for x in xrange(10) if x % 3 == 1)

14.一行实现一个计算器

print input()

15.一行代码生成一个树结构

#!/usr/bin/env python
# encoding:utf8
from collections import defaultdict
def tree(): return defaultdict(tree)
users = tree()
users['codingpy']['username'] = 'earlgrey'
users['python']['username'] = 'Guido van Rossum'
print users

转载于:https://my.oschina.net/yves175/blog/805331

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值