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



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

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

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

Das代码:

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

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

这是因为remove返回None。python中大多数(所有?)改变值的内置函数返回None

因此,您的外部join试图将任何东西连接在一起。

不是直接回答你的问题,但这似乎是一个非常困难的方法来做切片…

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

高尔夫版

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

最新更新