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冒泡排序算法的实现代码
Nov 21 Python
详解Python中find()方法的使用
May 18 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
python装饰器初探(推荐)
Jul 21 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
django admin 添加自定义链接方式
Mar 11 Python
Python PyQt5整理介绍
Apr 01 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
vue的mixins属性详解
2018/03/14 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python删除文本中行数标签的方法
2018/05/31 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
python3中数组逆序输出方法
2020/12/01 Python
python 实现IP子网计算
2021/02/18 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
大学生物业管理求职信
2013/10/24 职场文书
大一新生期末自我评价
2014/09/12 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android