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 相关文章推荐
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Python多进程机制实例详解
Jul 02 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
Python 元组拆包示例(Tuple Unpacking)
Dec 24 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
使用Python FastAPI构建Web服务的实现
Jun 08 Python
python matplotlib库的基本使用
Sep 23 Python
python基础学习之生成器与文件系统知识总结
May 25 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伪造referer实例代码
2008/09/20 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
原生js实现放大镜
2017/02/20 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
python关键字and和or用法实例
2015/05/28 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
销售心得体会
2014/01/02 职场文书
大专生自我评价
2014/01/28 职场文书
法学函授自我鉴定
2014/02/06 职场文书
爱我中华教学反思
2014/04/28 职场文书
工作年限证明范本
2015/06/15 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书