新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
Python问题记录
嘉美伯爵   2019年3月13日 14:36   Python   Python   57  

编码问题

  • raw_unicode_escape
s1 = u'\xe6\x97\xa0\xe5\x90\x8d' 
s2 = s1.encode('raw_unicode_escape')
s2 ---->无名

s1 = '王者荣耀'
ss = s1.encode()
print(ss)
b'\xe7\x8e\x8b\xe8\x80\x85\xe8\x8d\xa3\xe8\x80\x80'
  • unicode-scape
s3 = ‘\u559c\u6b22\u4e00\u4e2a\u4eba’ 
s4 = s3.decode('unicode-scape')
s4 ---> 喜欢一个人

for/yeilds/列表生成式

  • for
import time
def for_test():
    data = []
    for i in range(10000000):
        data.append(i)

start_time = time.time()
for_test()
end_time = time.time()
print(end_time - start_time)
  • yeilds
import time
def test_yeilds():
    for i in range(10000000):
        yield i

start_time = time.time()
list(test_yeilds())
end_time = time.time()
print(end_time - start_time)
  • 列表生成式
import time
start_time = time.time()
[i for i in range(10000000)]
end_time = time.time()
print(end_time - start_time)
  • 对比

我们在程序中一般使用生成式,yeilds一般适应于生产者和消费者等模型

# yeilds  1.311075210571289
# 生成式 0.955054759979248
# for 1.674095869064331

参考文档

Python中编码问题:u'\xe6\x97\xa0\xe5\x90\x8d' 类型和 ‘\u559c\u6b22\u4e00\u4e2a\u4eba ’ 转为utf-8的解决办法

Python3 encode中的unicode-escape和raw_unicode_escape