您的位置:首页 > 编程语言 > Python开发

python记录

2016-05-26 20:46 465 查看
>>> 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')是反向操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python