ITPub博客

首页 > 应用开发 > IT综合 > Python内部函数zip使用

Python内部函数zip使用

IT综合 作者:SDYTXM 时间:2017-11-09 23:51:36 0 删除 编辑
#zip() 函数
'''
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,
利用 * 号操作符,可以将元组解压为列表。
zip 语法:
zip([iterable, ...]) #可迭代

'''


a=[0,1,2,3,4]
b=[5,6,7,8,9]
c=[10,11,12,13,14,15,16]


zipped1 = zip(a,b)#打包为元组列表
print(zipped1.__next__())#只能取出一组
print(list(zipped1))#可以全部取出


zipped2 = zip(b,c)#元素个数与最短的列表一致
print(zipped2.__next__())
print(list(zipped2))


zipped3 = zip(a,c)
i= zip(*zipped3)#与zip相反,可理解为解压,返回二维矩阵式
#print(i.__next__())
print(list(i))    #可以全部取出


#案例:
checkio=([ 'X.O', 'XX.', 'XOO']) == 'X' 
checkio=([ 'OO.', 'XOX', 'XOX']) == 'O' 
checkio=([ 'OOX', 'XXO', 'OXX']) == 'D'

def checkio(result):
     rows = result
     cols = map(''.join, zip(*rows))
     diags = map(''.join, zip(*[(r[i], r[2 - i]) for i, r in enumerate(rows)]))
     lines = rows + list(cols) + list(diags)
     return 'X' if ('XXX' in lines) else  'O' if ('OOO' in lines) else 'D'

result = ['OOX','XXO','OXX']
rows = result
for i in zip(*rows):
    print(i)



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20985606/viewspace-2147059/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: python基础2
下一篇: VIM笔记
请登录后发表评论 登录
全部评论

注册时间:2012-04-02

  • 博文量
    41
  • 访问量
    217401