为什么这不起作用? ''.join(''。join(string).split()。remove(str [n]))

时间:2011-10-25 02:43:56

标签: python string join behavior

我正在玩codingbat.com,,我发现这个问题非常容易解决,所以我开始尝试打新手代码高尔夫球。

  

给定一个非空字符串和一个int n,返回一个新的字符串   索引n处的char已被删除。 n的值将是有效索引   原始字符串中的字符串(即n将在该范围内)   0..len(str)-1包含)。

     

missing_char('小猫',1)→'ktten'
missing_char('小猫',0)→   'itten'
missing_char('kitten',4)→'kittn'

Das Code:

def missing_char(str, n):
  return ''.join(' '.join(str).split().remove(str[n]))

奇怪的是,Python不会解释这一点。
为什么不呢?

3 个答案:

答案 0 :(得分:11)

这是因为remove返回None。 python中的大多数(全部?)内置函数都会使值变回None

因此,您的外部join正在尝试不加入任何内容。

答案 1 :(得分:8)

不能直接回答你的问题,但这似乎是一个非常难以做出决定的方法......

def missing_char(s, n):
    return s[:n] + s[n+1:]

答案 2 :(得分:1)

高尔夫版

missing_char=lambda s,n:s[:n]+s[n+1:]