Python 打印不带括号、不带引号、不带逗号和附加间距的列表

Python 打印不带括号、不带引号、不带逗号和附加间距的列表,python,Python,我有一个属性列表,attrlist[],在我的代码中一直在添加字符串。如何打印此列表而不使用括号、引号和逗号,并使用适当的间距?我的意思是: 当前代码: print('[%s]' % ', '.join(map(str, attrlist))) 我的输出: [1, bomb, C4, red, evil, yup] 我希望程序输出: 1 bomb C4 red evil yup ... “bomb”之前空格的“1”开头是4个空格 “炸弹

我有一个属性列表,attrlist[],在我的代码中一直在添加字符串。如何打印此列表而不使用括号、引号和逗号,并使用适当的间距?我的意思是:

当前代码:

print('[%s]' % ', '.join(map(str, attrlist)))
我的输出:

[1, bomb, C4, red, evil, yup]
我希望程序输出:

1   bomb            C4        red        evil yup ...
“bomb”之前空格的“1”开头是4个空格 “炸弹”的开始一直到“C4”之前的最后一个空间是16个空间。 “C4”的开头一直到“红色”之前的最后一个空格是10个空格。 “邪恶”之前的空格的“红色”开头是11个空格

数组将发生更改,因此“1”可能是“222”,但仍然总共占用4个空格。炸弹也是一样,C4,红色(又名名字,位置,颜色)。但是,在这之后,关键字不必用空格隔开,只需在它们之间加一个空格即可


非常感谢你的帮助。非常感谢。顺便说一句,我这样做是为了一个安装在raspberry pi上的工具组织系统,运行python 2.7.10。

这无论如何都不会有效率,但这里有一个解决方案:

attrlist = [1, 'bomb', 'C4', 'red', 'evil', 'yup', 'puppy'] #this list needed a puppy
lengthlist = [4, 16, 10, 11]

ans = ''
for attr, length in zip(attrlist, lengthlist):
    ans += format(attr, '<{}'.format(length))

ans += ' '.join(map(str, attrlist[len(lengthlist):]))

print(ans)
attrlist=[1,‘炸弹’、‘C4’、‘红色’、‘邪恶’、‘是的’、‘小狗’]#这个列表需要一只小狗
长度列表=[4,16,10,11]
ans=“”
对于attr,长度单位为zip(attr列表,长度列表):

ans+=format(attr,,括号和逗号很容易去掉,只需在代码中去掉它们即可

print(' '.join(map(str, attrlist)))
但既然你想要自定义间距,你应该看看。它使用一个特殊的

attrs=[1,‘炸弹’、‘C4’、‘红色’、‘邪恶’、‘是的’]

打印({0:还有一个问题,为什么要这样做。你想要的输出格式没有任何意义。但是只有通过特殊的方法才能实现特殊的愿望,简单的方法总是只针对默认值。@Ben有一个很好的答案,说明了如何长时间进行打印。你对
zip
的评论没有任何意义。
zip(x,y)
总是会在
x
y
用完时停止。@Blckknght:我没有意识到。让我编辑我的答案。谢谢你只是一点小技巧,str.format方法足够聪明,可以识别类似
的东西{attr:谢谢。清楚地看到和理解。我的理解是OP在列表末尾有未知数量的关键字,所以稍微修改一下:
print(“{0:@achampion这可能是个不错的假设,它不会破坏当前的行为。顺便说一句,当类型是默认行为时,为什么要显式地使用它呢?特别是对于字符串,“s”是唯一的选项。Python的Zen:“显式优于隐式”。:)我没有充分的理由。@achampion这是公平的。我的意思是,我无论如何都会使用对齐方式。仅供参考,2.7中格式字符串中的字段名称也是可选的,例如,
“{}”
在2.7中可以正常工作,只是在早期版本中不行。
f(*args,otherarg)
在py3中也是非法的。
attrs = [1, 'bomb', 'C4', 'red', 'evil', 'yup']
print('{0:<4}{1:<16}{2:<10}{3:<11}{rest}'.format(*attrs[:4], rest=' '.join(attrs[4:])))
# Note in earlier versions of py2 you have to refer to format arguments by index or key, {} won't work