转换2元素列表的列表:[[word,length],[word,length],...]

时间:2018-03-04 21:21:17

标签: python string python-3.x list string-length

我需要帮助编辑带有字符串的lenumerate()函数 (比如' s')并返回包含每个单词和的2项目列表的列表 它的长度:[['But', 3], ['then', 4], ['of', 2], ... ['are', 3], ['nonmigratory', 12]]

  

lenumerate(s) - 转换''到2元素列表列表:[[word,   长度],[字,长度],......]

# Define the function first ...
def lenumerate(s):

l = []  # list for holding your result

# Convert string s into a list of 2-element-lists
     

在此处输入您的代码

return l
     

...然后调用lenumerate()来测试它

 text = "But then of course African swallows are nonmigratory"
 l = lenumerate(text)
 print("version 1", l)

我想我需要吐出列表并使用len()函数,但我不确定如何以最有效的方式使用这两个函数。

4 个答案:

答案 0 :(得分:4)

以下是您想要的答案:

def lenumerate(s):
    l = []
    words = s.split(' ')

    for word in words:
        l.append([word,len(word)])

    return l

答案 1 :(得分:1)

 re.search(r'[_a-zA-Z][_a-zA-Z0-9]*', s)

答案 2 :(得分:1)

我会在这里使用list comprehension。所以:

def lenumerate (s): return [[word, len (word)] for word in s.split()]

让我解释一下这个漂亮的单行:

  1. 您可以在一行上使用def(或任何需要冒号的内容)。只需在冒号后输入。
  2. 列表理解意味着您可以以特殊方式创建列表。因此,我不是定义临时列表l并在以后添加它,而是通过将其括在括号中来创建在现场自定义。
  3. 我按照你的建议制作[word, len (word)],Python理解我将在for循环中定义word,其中:
  4. 在声明之后来。这就是我首先制作清单,然后是我的for声明
  5. 的原因
  6. 并且,就像你猜测的那样,我们在它上面循环的列表s.split()(在空格处分裂)
  7. 还有其他问题,请问!

答案 3 :(得分:1)

这是一个简洁的方法:

input