编写一个函数,该函数将字符串列表作为参数,并返回包含每个字符串长度的列表

时间:2015-04-02 23:05:44

标签: python list format

整个问题:编写一个函数,该函数将字符串列表作为参数,并返回包含每个字符串长度的列表。也就是说,如果输入参数是[“apple pie”,“brownies”,“chocolate”,“dulce de leche”,“eclairs”],你的函数应该返回[9,8,9,14,7]。 / p>

我使用“累加器”接近这个程序,我会累积列表。

我的节目:

def accumulating():
  List = []
  Strings = input("Please enter a list of strings: ")
  List = Strings.split(" ")
  return List

def length(n):
  r = []
  for i in n:
    r.append(len(n))
  return r

def main():
  y = accumulating()
  x = length(y)
  print(x)

main()

3 个答案:

答案 0 :(得分:5)

def accumulating(strings):
    return [len(i) for i in strings]

就是这样。

答案 1 :(得分:0)

TigerhawkT3有正确的答案,但如果您想更改代码,您可以这样做。在长度函数中,您不会返回字符串的长度,只需打印它们即可。将其更改为:

def length(n):
    r = []
    for i in n:
        r.append(len(n))
    return r

def accumulating():
    list = []
    strings = input("Please enter a list of strings(seperated by a white space): ")
    list = strings.split(" ")
    return list

请使用变量名中的cammelcase,以小写字母开头。这样可以避免混合变量和数据类型。 http://en.wikipedia.org/wiki/CamelCase

答案 2 :(得分:0)

这是基本逻辑:

x = ["apple pie", "brownies","chocolate","dulce de leche","eclairs"]
y = []
for i in x:
    a = len(i)
    y.append(a)
print y

这与用户输入的逻辑相同:

b = raw_input("Please enter a list of strings(seperated by a comma): ")
x = []
x.append(b)
x = b.split(",")
y = []
for i in x:
    i = i.strip()
    a = len(i)
    y.append(a)
print y

我使用x = b.split(",")因此用户输入可以用逗号分隔,然后i = i.strip()将删除空格,以便a = len(i)准确,空格不会是包含在len中。