Python实现读取字符串按列分配后按行输出示例


Posted in Python onApril 17, 2018

本文实例讲述了Python实现读取字符串按列分配后按行输出。分享给大家供大家参考,具体如下:

问题:

输入一个字符串和一个数字,数字代表分为几行,需要按照给定的列存储方法存储下来之后按行拼接读出,如:

输入:TNGDWXAZQSCVBK,3
输出:TWQBNDXZSVKGAC

中间转化的时候会形成这样的图形:

T   W   Q   K
N D X Z S V B
G   A   C

化为矩阵可能看得更清晰一点:

T 0 W 0 Q 0 B
N D X Z S V K
G 0 A 0 C 0 0

0是作为空白填充进去的,下面看具体的实现:

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:zigzag_pattern
T  W  Q  K
N D X Z S V B
G  A  C
convert("TNGDWXAZQSCVBK", 3) should return "TWQBNDXZSVKGAC".
'''
def convert_test(one_str,num):
  '''''
  '''
  mod=len(one_str)%(num+1)
  if mod==0:
    cols=(len(one_str)/(num+1))*2
  else:
    cols=(len(one_str)/(num+1))*2+1
  rows=num
  #print 'rows, cols', rows, cols
  matrix=[]
  for i in range(rows):
    matrix.append([0]*cols)
  one_str_list=list(one_str)
  for j in range(cols):
    if j%2==0:
      for i in range(rows):
        if len(one_str_list):
          matrix[i][j]=one_str_list.pop(0)
    else:
      matrix[1][j]=one_str_list.pop(0)
  #print matrix
  # for one in matrix:
  #   one_list=[str(onec) for onec in one]
  #   print ' '.join(one_list)
  res=''
  for one_list in matrix:
    one_list=[str(one) for one in one_list]
    res+=''.join(one_list)
  return ''.join(res.split('0'))
if __name__ == '__main__':
  print convert_test("TNGDWXAZQSCVBK", 3)
  print convert_test("PAYPALISHIRING", 2)
  print convert_test("PAYPALISHIRING", 4)

结果如下:

TWQBNDXZSVKGAC
PPIINAYALSHRIG
PLRAAIIIYSNPHG
[Finished in 0.3s]

更多关于Python相关内容可查看本站专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 字典(Dictionary)操作详解
Mar 11 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
Python中设置变量访问权限的方法
Apr 27 Python
python函数形参用法实例分析
Aug 04 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
python列表,字典,元组简单用法示例
Jul 11 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
解决python存数据库速度太慢的问题
Apr 23 Python
Python安装使用Scrapy框架
Apr 12 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 #Python
Numpy掩码式数组详解
Apr 17 #Python
对numpy中布尔型数组的处理方法详解
Apr 17 #Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 #Python
python3库numpy数组属性的查看方法
Apr 17 #Python
对python中的for循环和range内置函数详解
Apr 17 #Python
Numpy数组转置的两种实现方法
Apr 17 #Python
You might like
php中文本操作的类
2007/03/17 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
javascript 自定义事件初探
2009/08/21 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python turtle 绘制太极图的实例
2019/12/18 Python
python实现ftp文件传输功能
2020/03/20 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
vscode调试django项目的方法
2020/08/06 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
班组长工作职责
2013/12/25 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
2015年幼师工作总结
2015/04/28 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
《检阅》教学反思
2016/02/22 职场文书