【问题标题】:Create tab separated print output from a list of tuples python从元组python列表中创建制表符分隔的打印输出
【发布时间】:2016-05-29 16:11:35
【问题描述】:

我有一个元组列表,我想将其转换为可以输出到屏幕的制表符分隔格式。 例如,我有一个元组列表 A.

[('1_1248', 1, 1),('1_148', 7, 0),('1_18', 6, 1),('1_10', 2, 1)]

我的代码如下:

print "ID", "name" , "name"
print("\t".join( repr(e) for e in output))

产生:

ID   name  name
('1_1248', 1, 1)     ('1_148', 7, 0)    ('1_18', 6, 1)  ('1_10', 2, 1)

我想要某种制表符分隔的输出(最好使用一两行):

ID    name  name
'1_1248'  1  1
'1_148'   7  0
'1_18'    6  1
'1_10'    2  1

我知道如何以“长”方式做到这一点,但是有没有短的 1/2 班轮?

【问题讨论】:

    标签: python list csv join tuples


    【解决方案1】:

    使用熊猫:

    import pandas as pd
    
    x = [('1_1248', 1, 1),('1_148', 7, 0),('1_18', 6, 1),('1_10', 2, 1)]
    
    df = pd.DataFrame(x, columns=["ID", "name" , "name"])
    
    df 
           ID  name  name
    0  1_1248     1     1
    1   1_148     7     0
    2    1_18     6     1
    3    1_10     2     1
    
    # to save
    df.to_csv("data.csv")
    

    【讨论】:

    • 谢谢!我刚试过这个,效果也很好。
    【解决方案2】:

    两行就可以了:

    >>> A = [('1_1248', 1, 1),('1_148', 7, 0),('1_18', 6, 1),('1_10', 2, 1)]
    >>> for a in A:
    ...     print "\t".join([str(i) for i in a])
    ... 
    1_1248  1   1
    1_148   7   0
    1_18    6   1
    1_10    2   1
    >>> 
    

    【讨论】:

    • 是的……那个效果很好。谢谢!我正在尝试这样的事情:[("\t".join([str(i) for i in a])) for a in output]。你能告诉我为什么这不起作用吗?
    • 你快到了:print "\n".join([("\t".join([str(i) for i in a])) for a in A]) ;)
    • 啊是啊哈哈当然!谢谢你。我想我编码太久了,错过了!
    猜你喜欢
    • 2011-05-02
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多