【问题标题】:Python printing array lists and length using definine functionPython使用定义函数打印数组列表和长度
【发布时间】:2015-09-30 16:14:32
【问题描述】:

我正在尝试打印变量“单词”中的列表并打印每个单词的长度。 我知道当您不使用 def 功能时如何打印,但不确定如何使用以下方法打印。

words = ["good", "Joy", "computer"]
def list1(words):
    for x in words:
        print x
    return x, len(x)
print list1(words)

这是给我的:

good
Joy
Computer
('Computer', 8)

我该怎么做才能让它像这样打印出来。

good 4
joy 3 
computer 8

谢谢

【问题讨论】:

    标签: python


    【解决方案1】:

    你需要决定你的函数是应该打印一些东西还是返回一个你要打印的字符串。这是后者的一个例子:

    words = ["good", "Joy", "computer"]
    
    def list1(words):
        lines = ('{} {}'.format(x, len(x)) for x in words)
        return '\n'.join(lines)
    
    print(list1(words))
    

    如果你喜欢单线,你也可以这样做:

    print('\n'.join('{} {}'.format(x, len(x)) for x in words))
    

    【讨论】:

    • 按照惯例先建立一个行列表然后return '\n'.join(lines)
    【解决方案2】:

    以及不带返回值的打印示例

    words = ["good", "Joy", "computer"]
    
    def list1(words):
        for x in words:
            print ("%s %u"%(x, len(x)))
    
    list1(words)
    

    【讨论】:

      【解决方案3】:

      您要么必须让函数将所有输出作为字符串返回,要么在函数内打印所有输出并且不返回任何内容。

      1. 打印函数的返回值:

        words = ["good", "Joy", "computer"]
        
        def list1(words):
            return "\n".join((x, len(x)) for x in words)
        
        print list1(words)
        
      2. 仅在函数内部打印:

        words = ["good", "Joy", "computer"]
        
        def list1(words):
            print x, len(x) for x in words
        
        list1(words)
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-31
        • 2015-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多