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的Template使用指南
Sep 11 Python
python打开url并按指定块读取网页内容的方法
Apr 29 Python
python 根据pid杀死相应进程的方法
Jan 16 Python
Python爬取网易云音乐上评论火爆的歌曲
Jan 19 Python
python实现周期方波信号频谱图
Jul 21 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
新手入门Python编程的8个实用建议
Jul 12 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
Python 实现将某一列设置为str类型
Jul 14 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
Python时间操作之pytz模块使用详解
Jun 14 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
Protoss建筑一览
2020/03/14 星际争霸
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
jQuery 选择器理解
2010/03/16 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
python实现粒子群算法
2020/10/15 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
咖啡蛋糕店创业计划书
2014/01/28 职场文书
员工考核管理制度
2014/02/02 职场文书
军训学生自我鉴定
2014/02/12 职场文书
如何写好建议书
2014/03/13 职场文书
房屋转让协议书范本
2014/04/11 职场文书
机房搬迁方案
2014/05/01 职场文书
合同意向书范本
2014/07/30 职场文书
售房协议书范本2014
2014/10/23 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS