python记录

>>> ss=[var if not var%2 else var+10 for var in range(1,10)]
>>> ss
[11, 2, 13, 4, 15, 6, 17, 8, 19]

在上例中,if语句与前面的var相结合,不能没有else,如果没有的话,会出错(而且,就算改为else pass,或者else continue也会出错,因为if-else的这种特殊写法在这里必须要输出一个值),参考下面:

>>> 'a' if 5%2
  File "<stdin>", line 1
    'a' if 5%2
             ^
SyntaxError: invalid syntax
>>> 'a' if 5%2 else 'b'
'a'
如果要写的语句里真的不有else分支,应该这样写:

>>> ss=[var for var in range(1,10) if not var%2]
>>> ss
[2, 4, 6, 8]
列表推导式中,if都写在for的右边,且不能有else。而第一个例子,是列表推导式加if-else的特殊写法,组合时要遵循各自的语法规则。

1、将列表中的单词组成一句话:

>>> from functools import reduce
>>> ss=['I','am','a','good','boy']
>>> reduce(lambda a,b:"%s %s"%(a,b),ss)
'I am a good boy'

2、python3中,将print输出到文件:

In [8]: import sys
In [9]: print('test',file=sys.stderr)
test
In [10]: ferr=open('info.txt','w')
In [11]: print('test',file=ferr)
In [12]: ferr.close()
In [13]:

3、在ipython或者ipython notebook中运行python程序:

!python test.py
!pyspark wordcount.py <input_file>
这样就不需要再开个终端来运行.py程序了

4、sort和sorted,参考:点击打开链接

>>> list = [2,5,1]  
>>> list  
[2, 5, 1]  
>>> sorted(list)  
[1, 2, 5]  
>>> list  
[2, 5, 1]  
>>> list.sort()  
>>> list  
[1, 2, 5]  

sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。

list.sort() 不会返回对象,改变原有的list。

5、python3中没有sys.maxint了,有如下三种替代办法:

#1
import struct
platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
#2
sys.maxsize
#3
float("inf")

6、在浏览器里查看帮助文档:

python -m pydoc -p 4567
简单解释一下:
  python -m pydoc表示打开pydoc模块,pydoc是查看python文档的首选工具;
  -p 4567表示在4567端口上启动server;
  然后在浏览器中访问http://localhost:4567/,此时应该可以看到python中所有的Modules

7、python3 string与bytes相互转换:

将bytes转换成unicode:

str(eachline,'utf8') 

将unicode转换成bytes:

bytes(string,'utf8')是反向操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值