Python使用define函数打印数组列表和长度



我试图在变量"words"中打印列表并打印每个单词的长度。我知道当你不使用def function时如何打印,但不确定如何使用下面的方法打印。

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

谢谢

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

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))

还有一个不返回值

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

要么让函数以字符串形式返回所有输出,要么在函数内部打印所有输出而不返回任何内容。

  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)
    

最新更新