Python - 添加以特定字符开头的字符串列表中的单词
好的,我又遇到一个Python的问题了。我试了几次,但就是搞不定。
问题是:实现一个叫做startString( char, stringlist)的函数,它要返回一个列表,这个列表里包含所有以字符char开头的字符串。
startString('s',["simple", "to", "do", "some","things"])
这是我到目前为止尝试的代码,我知道它不管用:
def startString(char, stringlist):
newlist = []
for i in stringlist:
if stringlist[0] == char:
newlist.append(stringlist)
print newlist
谢谢大家提供的任何帮助。
7 个回答
1
你应该看看Python 的列表推导式。这个“功能”通常在 Python 中可以用一行代码来写。你还可以了解一下字符串的 .startswith 方法。
3
猜测这可能是作业,我们先从一些简单的内容开始。
你可以用列表推导式在Python中创建新的列表。
newList = [item for item in oldList]
你可以像访问列表一样访问字符串中的字符。这和字符串的
.startswith()
方法是一样的。firstChar = inputString[0]
你可以在列表推导式中使用条件来控制新列表中显示哪些项目。
newList = [item for item in oldList if <逻辑测试>]
根据你的评分方式,记得要
return
新列表,而不是print
它。如果评分是自动化的,这个区别会很明显。
仔细查看你提供的示例代码后,看来你可能在这一行遇到了困难:
if stringlist[0] == char:
在这里,你是从传入的列表中获取第一个值,而不是你想要测试的字符串的第一个字符。这就可能导致你遇到的问题。此外,你可能不想要这一行:
newlist.append(stringlist)
这会把整个输入列表放入你的输出列表中。你可能想要的是:
newlist.append(i)
很多这些细节在其他答案/建议中也有提到。
1
试试这个:
def startString(char, stringlist):
newlist = []
for string in stringlist:
if string.startswith(char):
newlist.append(string)
print newlist