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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
python 查找字符串是否存在实例详解
Jan 20 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
python定位xpath 节点位置的方法
Aug 27 Python
python读取mysql数据绘制条形图
Mar 25 Python
Python 如何实现文件自动去重
Jun 02 Python
python神经网络学习 使用Keras进行简单分类
May 04 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实现的简单mock json脚本分享
2015/02/10 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
javascript 回调函数详解
2014/11/11 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
物业管理计划书
2014/01/10 职场文书
护士自我评价范文
2014/01/25 职场文书
十一酒店活动方案
2014/02/20 职场文书
测量工程专业求职信
2014/02/24 职场文书
置业顾问岗位职责
2014/03/02 职场文书
2014年国庆节寄语
2014/09/19 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android