2016.8.7 UnicodeEncodeError 同时遍历多个list

写文件时遇到错误: UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-7: ordinal not in range(128)

解决办法:import sys

     reload(sys)

     sys.setdefaultencoding('utf8')

 

同时遍历多个list  

L1 = [1,2,3,4]

L2 = [5,6,7,8]

for (x,y) in zip(L1,L2):

       print(x,'+',y,'=',x + y)

 

运行结果为:

1 + 5 = 6

 

使用zip构造字典,非常方便。

示例:

keys = ['spam','eggs','toast']

vals = [1,3,5]

list(zip(keys,vals)) 

D2 = {}

for (k,v) in zip(keys,vals):

       D2[k] = v

print(D2)

运行结果为:{'toast': 5, 'eggs': 3, 'spam': 1}

python2.2和后续版本中,可以完全跳过for循环,直接把zip过的健/值列表传给内置的dict构造函数,以上划线部分可以换做D3 = dict(zip(keys,vals))

内置变量名dict其实是python中的类型名称

2 + 6 = 8

3 + 7 = 10

4 + 8 = 12

posted @ 2016-08-07 21:31  zyf1  阅读(129)  评论(0编辑  收藏  举报