Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35063
  • 博文数量: 12
  • 博客积分: 105
  • 博客等级: 民兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-24 20:46
文章分类

全部博文(12)

文章存档

2014年(5)

2013年(3)

2012年(4)

我的朋友

分类: Python/Ruby

2014-08-23 16:34:36

顺时针旋转

点击(此处)折叠或打开

  1. rotated = zip(*original[::-1])
逆时针旋转

点击(此处)折叠或打开

  1. rotated_ccw = zip(*original)[::-1]
这里主要用到zip函数
定义:zip([iterable, ...])
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了:

点击(此处)折叠或打开

  1. In [19]: a = [1, 2, 3]

  2. In [20]: b = [4, 5, 6]

  3. In [21]: zipped = zip(a, b)

  4. In [22]: zipped
  5. Out[22]: [(1, 4), (2, 5), (3, 6)]
我们可以利用*符号把list解包,传递给zip函数,例如:

点击(此处)折叠或打开

  1. In [25]: m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

  2. In [26]: n = zip(*m)

  3. In [27]: n
  4. Out[27]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

  5. In [28]: rotated = zip(*m[::-1])

  6. In [29]: rotated
  7. Out[29]: [(7, 4, 1), (8, 5, 2), (9, 6, 3)]


阅读(2001) | 评论(0) | 转发(0) |
0

上一篇:c++, 字符串分割

下一篇:没有了

给主人留下些什么吧!~~