我需要将列表中的每个值赋给一个变量。然后我从另一个程序调用这个变量
这是我的密码:
inputList = """["vanilla","vanillas","vanill","vanil","vanila"]"""
def singleListSplitter(inputText):
try:
inputList = ast.literal_eval(inputText)
clean_inputList = [item.strip() for item in inputList]
#print clean_inputList
for item in clean_inputList:
yield item
print item
except Exception as e:
print "Error: ",e
singleListSplitter(inputList)
在运行脚本时,我在控制台中没有看到任何带有yield
的输出。print
按预期工作。我需要改变什么来获得每个单独的值
更新1
根据评论和回复,我尝试:
value = list(singleListSplitter(inputList))
print value
得到了一份回复
这里我真正想要的是5个字符串(来自列表),我可以在其他地方使用
当你在函数中使用yield时,你得到的是一个生成函数
生成函数与正则函数有些不同;它们不会在您调用它们时运行,而是返回一个generator对象,这是迭代器的一种类型—您可以对其进行迭代,例如在for循环中
要在函数中运行代码,您需要实际迭代generator对象
一种简单的方法是调用generator对象上的
list
list(singleListSplitter(inputList))
但是如果您没有使用函数生成的值,那么首先就没有理由使用
yield
,您可以删除它,这样您就有了一个打印结果的常规函数相关问题 更多 >
编程相关推荐