将文本列表格式化为列

2024-03-08

我正在尝试将字符串值列表输出为 2 列格式。将字符串列表制作为“普通文本”的标准方法是使用字符串连接方法。但是,它只需要 2 个参数,因此我只能使用“\n”创建一个列。我认为尝试创建一个循环,只需在列之间添加一个选项卡就可以做到这一点,但逻辑无法正常工作。

我找到了一个活动状态页面 http://code.activestate.com/recipes/302380/这是一个相当复杂的方法,但这是 4 年前的事了。现在有没有简单的方法可以做到这一点?


Edit这是我想要使用的列表。

skills_defs = ["ACM:Aircraft Mechanic", "BC:Body Combat", "BIO:Biology",
    "CBE:Combat Engineer", "CHM:Chemistry", "CMP:Computers", 
    "CRM:Combat Rifeman", "CVE:Civil Engineer", "DIS:Disguise",
    "ELC:Electronics","EQ:Equestrian", "FO:Forward Observer",
    "FOR:Forage", "FRG:Forgery", "FRM:Farming", "FSH:Fishing",
    "GEO:Geology", "GS:Gunsmith", "HW:Heavy Weapons", "IF:Indirect Fire",
    "INS:Instruction", "INT:Interrogation", "JP:Jet Pilot", "LB:Longbow",
    "LAP:Light Aircraft Pilot", "LCG:Large Caliber Gun", "LNG:Language",
    "LP:Lockpick", "MC:Melee Combat", "MCY:Motorcycle", "MEC:Mechanic",
    "MED:Medical", "MET:Meterology", "MNE:Mining Engineer",
    "MTL:Metallurgy", "MTN:Mountaineering", "NWH:Nuclear Warhead",
    "PAR:Parachute", "PST:Pistol", "RCN:Recon", "RWP:Rotary Wing Pilot",
    "SBH:Small Boat Handling","SCD:Scuba Diving", "SCR:Scrounging",
    "SWM:Swimming", "TW:Thrown Weapon", "TVD:Tracked Vehicle Driver",
    "WVD:Wheeled Vehicle Driver"]

我只想将此列表输出为简单的 2 列格式以减少空间。理想情况下,列之间应该有标准的空间量,但我可以使用它。

ACM:Aircraft Mechanic        BC:Body Combat 
BIO:Biology         CBE:Combat Engineer 
CHM:Chemistry       CMP:Computers
CRM:Combat Rifeman      CVE:Civil Engineer 
DIS:Disguise            ELC:Electronics 
EQ:Equestrian           FO:Forward Observer
FOR:Forage          FRG:Forgery 
FRM:Farming             FSH:Fishing
GEO:Geology             GS:Gunsmith 
HW:Heavy Weapons        IF:Indirect Fire
INS:Instruction             INT:Interrogation 
JP:Jet Pilot            LB:Longbow
 LAP:Light Aircraft Pilot       LCG:Large Caliber Gun 
LNG:Language            LP:Lockpick 
MC:Melee Combat         MCY:Motorcycle 
MEC:Mechanic            MED:Medical 
MET:Meterology      MNE:Mining Engineer
MTL:Metallurgy      MTN:Mountaineering 
NWH:Nuclear Warhead     PAR:Parachute 
PST:Pistol          RCN:Recon 
RWP:Rotary Wing Pilot       SBH:Small Boat Handling 
SCD:Scuba Diving        SCR:Scrounging
SWM:Swimming        TW:Thrown Weapon 
TVD:Tracked Vehicle Driver  WVD:Wheeled Vehicle Driver

两列由制表符分隔,连接成行。在看迭代工具对于迭代器等价物,以实现节省空间的解决方案。

import string
def fmtpairs(mylist):
    pairs = zip(mylist[::2],mylist[1::2])
    return '\n'.join('\t'.join(i) for i in pairs)

print fmtpairs(list(string.ascii_uppercase))

A   B
C   D
E   F
G   H
I   J
...

哎呀...被S.Lott抓住了(谢谢)。

更通用的解决方案可以处理任意数量的列和奇数列表。稍作修改自S.lott https://stackoverflow.com/questions/171662/formatting-a-list-of-text-into-columns#173823,使用发电机来节省空间。

def fmtcols(mylist, cols):
    lines = ("\t".join(mylist[i:i+cols]) for i in xrange(0,len(mylist),cols))
    return '\n'.join(lines)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文本列表格式化为列 的相关文章

随机推荐

  • 需要指南针陀螺仪帮助

    我需要一个游戏对象指向北方 并且我想将其与 gyro attitude 输入结合起来 我曾尝试一步完成此任务 但没有成功 也就是说 我无法制作任何我在网上找到的陀螺仪脚本 以满足始终指向北方的额外要求 相信我 我已经尝试了所有能找到的关于这
  • Angular2 RC6 - 在我的子模块中导入 BrowserModule

    I have DashboardModule导入到我的根目录中AppModule 在组件模板中DashboardModule I use ngFor 它声明于BrowserModule 正是在CommonModule进口者BrowserMo
  • database.yml 中的 pool 选项有什么用

    database yml 中最广泛使用的选项如下 adapter encoding database pool username password socket host port timeout 上面大部分的用法我都知道 除了pool 所
  • 如何将一个数字分成多个部分,使结果之和等于输入?

    我试图将一个数字分成多个部分 以便各部分的总和等于输入数字 如果我有 3 99 并且需要分成两部分 则预期输出为 2 和 1 99 2 1 99 3 99 如果我需要将 3 99 分成 3 部分 则预期输出为 1 3 1 3 和 1 39
  • opencv矩阵存入共享内存

    我想在两个 Linux 进程之间共享一个 CvMat 对象 OpenCV 库中的矩阵 为此我使用共享内存 一个进程 服务器 将从网络摄像头捕获一帧 矩阵 将其转换为灰度 使用共享内存共享它并在屏幕上显示该帧 另一个进程 客户端 将读取共享帧
  • Zend 框架 - Zend_Form 装饰器问题

    我有一个像这样扩展 Zend Form 的类 简化 class Core Form extends Zend Form protected static elementDecorators array ViewHelper Errors a
  • 如何使用 tie() 仅为某些包重定向 STDOUT、STDERR?

    我需要使用一些不幸记录诊断的库 发送至 STDOUT 和 STDERR 的消息 通过使用tie 我可以重定向那些 写入捕获这些的函数 既然我不想要全部 我的程序的 STDOUT 和 STDERR 输出通过 捆绑手柄 我只想对某些包裹执行此操
  • 在 Android 4.4 上使用非默认短信应用程序发送短信

    我可以不使用默认短信应用程序发送短信吗安卓 4 4 奇巧 这意味着 我可以在无法写入短信提供商的情况下发送短信吗 我对 Android 4 4 Kitkat 上的这一点感到困惑 我想知道我是否可以使用非默认短信应用程序发送短信 即使您的应用
  • argparse 参数顺序

    我有一个小问题 I use argparse来解析我的论点 而且效果很好 为了获得参数 我这样做 p args parser parse args argv args dict p args get kwargs 但问题是p args是我不
  • 从前台服务观察LiveData

    我有一个存储库 其中包含 LiveData 对象并由两者使用 通过 ViewModel 的 Activity 和前台服务 当我开始从活动中观察时 一切都按预期进行 但是 从服务中进行观察不会触发观察 这是我使用的代码 class MySer
  • Google 地图 - 如何获取两点之间的距离(以米为单位)?

    我有这些坐标 45 463688 9 18814 46 0438317 9 75936230000002 我需要 我认为是通过 Google API V3 来获取这两点之间的距离 以米为单位 我该怎么做 如果您想使用 v3 谷歌地图 API
  • 如何开始制作 C# RSS 阅读器?

    我想做一个 RSS 阅读器有一段时间了 只是为了好玩 但我完全不知道从哪里开始 我对RSS一无所知 有没有关于 RSS 的好的教程以及如何在应用程序中实现它 不是关于如何制作 RSS 阅读器的教程 那太简单了 See http msdn m
  • 变量名中的美元符号

    我偶然发现了一些像这样的 C 代码 int T S 首先我以为这是某种PHP https en wikipedia org wiki PHP代码或错误粘贴在那里的东西 但它可以很好地编译和运行 在2008年MSVC https en wik
  • Scikit Learn SVC Decision_function 和预测

    我试图理解 Decision function 和 Predict 之间的关系 它们是 SVC 的实例方法 http scikit learn org stable modules generated sklearn svm SVC htm
  • 如何使用新的controllerAs语法和面向对象的控制器在Angular中实现两种方式的绑定?

    我害怕 范围汤 人们将太多的功能挂在 scope 之外 因此 我正在尝试面向 OO 的控制器 新的controllerAs 并在我的控制器中使用 EC5 样式的 getter setter 这很有效 但现在我想以两种方式将指令的范围绑定到控
  • React CSS 模块 - 某些 CSS 未应用(对于 NavLink 组件设置的“活动”类)

    我的CSSactive class尽管 CSS 的其余部分实际上已应用 但似乎并未应用到渲染的组件上 CSS 是使用CSS 模块应用的 自从NavLinkReact router dom 包的组件将类设置为活动类 我在 CSS 文件中选择了
  • 在更改图像资源时在 ImageView 上创建动画

    我只有一个ImageView在我的布局中 当检测到气体事件时 我正在更改其资源 我只想在更改 ImageView 资源时显示动画 我可以用吗ViewFlipper with one图像视图 对于单个图像视图 您可以使用此辅助函数 publi
  • Pandas:如何将某些列移动到行中?

    假设我有df以下 我想合并价格列和价值列 以便所有价格都在一个列中 所有数量都在另一列中 我还想要第三列来确定价格水平 例如 unit1 unit2 and unit3 import numpy as np import pandas as
  • Numpy:ValueError:所需数组的对象深度太小

    我正在尝试将 MATLAB 代码转换为 Python 但我不知道如何将此行导入到 Python YDFA xa p interp1 data 1 data 2 YDFA lam p 1e9 linear 1e 24 现在对于 Python
  • 将文本列表格式化为列

    我正在尝试将字符串值列表输出为 2 列格式 将字符串列表制作为 普通文本 的标准方法是使用字符串连接方法 但是 它只需要 2 个参数 因此我只能使用 n 创建一个列 我认为尝试创建一个循环 只需在列之间添加一个选项卡就可以做到这一点 但逻辑