python中可选参数(字符串)的循环
我有字符串列表,有些是hashtags,比如#rabbitsarecool,还有一些是短文,比如“我的兔子叫弗雷德” 我已经编写了一个程序来分离它们:python中可选参数(字符串)的循环,python,optional-arguments,Python,Optional Arguments,我有字符串列表,有些是hashtags,比如#rabbitsarecool,还有一些是短文,比如“我的兔子叫弗雷德” 我已经编写了一个程序来分离它们: def seperate_hashtags_from_prose(*strs): props = [] hashtags = [] for x in strs: if x[0]=="#" and x.find(' ')==-1: hashtags += x
def seperate_hashtags_from_prose(*strs):
props = []
hashtags = []
for x in strs:
if x[0]=="#" and x.find(' ')==-1:
hashtags += x
else:
prose += x
return hashtags, prose
seperate_hashtags_from_prose(["I like cats","#cats","Rabbits are the best","#Rabbits"])
这个程序不起作用。在上面的示例中,当我调试它时,它告诉我在第一个循环中:
x=["I like cats","#cats","Rabbits are the best",#Rabbits].
这不是我所期望的——我的直觉是可选参数上的循环的构造方式导致了错误——但我不明白为什么。有几个问题
道具
和散文
之间切换。您发布的代码未运行*
,则不应使用列表进行调用。你可以使用将hashtags与散文分开(“我喜欢猫”、“猫”、“兔子是最好的”、“兔子”)
hashtags+=x
的作用与您认为的不同。当您将+
用作iterables(例如列表
和字符串
)上的运算符时,它将连接它们。您的意思可能是hashtags.append(x)
就Python而言,您向函数传递了一个参数:列表。将其作为多个参数传入(通过删除括号),或更改函数签名以获得列表。不清楚所需的输出是什么。请在您的帖子中包含当前输出和所需输出。