def ensure_list(papers):
if type(papers) is not list:
papers = [papers]
return papers
papers = 1
try:
papers.append(7)
except:
print "not a list"
papers = ensure_list(papers)
papers.append(5)
for item in papers:
print item
这个问题是询问检查和更改变量的最佳方法是什么,如果不是。 有没有更好的方法将论文作为第一个元素的列表?我正在编写一些可能被赋予对象或对象列表的代码,如果它是一个对象,我希望将它附加到列表然后进行处理。
这只做了一次所以看起来像是过度杀戮有一个单独的功能。
编辑: 元素将始终是已知类型(自定义类),并始终是自定义类型对象或自定义类型对象的列表。
答案如下:(谢谢Random832)
papers if isinstance(papers, list) else [papers]
Edit2:这不是另一个问题的重复,因为这不是在询问如何检查某些内容是否为列表。这个问题是询问检查和更改变量的最佳方法是什么,如果不是。这适用于我们真正喜欢的任何类型,一般的答案是内联isinstance。这个具体问题的答案是Random832提供的内联声明,其他问题是列出的。请在标记之前阅读并理解该问题。