我无法获得代码让我的生活能够发挥作用。
在本练习中,您的函数将收到一个参数,一个列表 字符串。您的函数将只生成并返回一个新列表 包括参数中的字符串副本,但不包括 包括字符串
kahn
。kahn
将出现在列表中。
预期结果:
words_up_to_kahn(["kirk", "spock", "luke", "charlie", "kahn", "bob"]) -> ["kirk", "spock", "luke", "charlie"]
words_up_to_kahn(["ernie", "kahn", "bert", "teal'c"]) -> ["ernie"]
示例: 它会是这样的吗?
return words[0:kahn]
或类似的东西:
def words_up_to_kahn(words):
new = ""
c = 0
while words[c] != "kahn":
new = new + words[c]
c = c + 1
return new
还是其他什么?
答案 0 :(得分:0)
这是我认为最简单的解决方案。
条件语句和.index("kahn")
是您的朋友:
def up_to_kahn(lst):
return lst if ("kahn" not in lst) else lst[:lst.index("kahn")]
assert up_to_kahn(["kirk", "spock", "luke", "charlie", "kahn", "bob"]) == \
["kirk", "spock", "luke", "charlie"]
assert up_to_kahn(["ernie", "kahn", "bert", "teal'c"]) == ["ernie"]
此外,这显然是从教科书中复制粘贴的。请不要使用Stack Overflow作为家庭作业答案网站。也就是说,这就是答案。
答案 1 :(得分:0)
如果您想要一种替代方法,对于以下itertools
解决方案的目的是:
from itertools import takewhile
def words_up_to_kahn(word_list):
return list(takewhile(lambda x: x != 'kahn', word_list))
print words_up_to_kahn(["kirk", "spock", "luke", "charlie", "kahn", "bob"])
print words_up_to_kahn(["ernie", "kahn", "bert", "teal'c"])
,并提供:
['kirk', 'spock', 'luke', 'charlie']
['ernie']