-1
# 5.- match_ends
# Given a list of strings, return the count of the number of
# strings where the string length is 2 or more and the first
# and last chars of the string are the same.
# Note: python does not have a ++ operator, but += works.
#       For example, the result of n = n + 1 can be also achieved by n += 1.



def match_ends(words):
  # +++your code here+++
  if len(words)>=2:
    return words[0]and words[-1:]==words[-1:]
    words+=words

What do you guys think I'm doing wrong and how should I improve this?

Here's the result:

match_ends
  X  got: True expected: 3
  X  got: '' expected: 2
 OK  got: True expected: 1
4

2 回答 2

1
def match_ends(words):
    word_count=len(words)
    results=[]
    for x in words:
        if len(x)>2 and x[0]==x[len(x)-1]:
            results.append(x)
    return word_count,results

word_list=["hello","wow"]
matched_words=match_ends(word_list)
print matched_words

这应该适合你:)

如果你想要它更pythonic,你可以这样做:

def match_ends(words):
    word_count=len(words)
    results=[x for x in word_list if len(x)>2 and x[0]==x[len(x)-1]]
    return word_count,results
于 2012-10-21T20:13:26.590 回答
0

更精简的方法:

def match_ends(words):
  count = 0
  for i in words:
    if len(i) >= 2 and i[-1] == i[0]:
      count = count + 1
  return count
于 2016-05-16T09:06:25.087 回答