考虑以下假设情况。
作为您使用 Python 开发的应用程序的一部分,您必须格式化对象列表并将每个后续项目分配给提供的关键字作为元组。语法如下:
entries = [keyword, [obj1, obj2, obj3, ...]] # Original list of object entries
formatted = [(keyword, obj1), (keyword, obj2), (keyword, obj3), ...]
这是您建议的功能(让我知道这是否更有效):
def format(keyword, entries):
return [(keyword, x) for x in entries[1][0]]
这里是应用的函数:
foo = format(entries[0], entries[1])
灵 active 问题
请注意 format
函数中的 entries
变量具有静态索引整数 1
和 0
。假设您预计新术语可能会附加到 entries
列表中。您通常会使用索引变量而不是常量吗(预计以后将进入列表的项目会增加常量),如果是这样,您会使用局部索引还是全局索引?您如何在代码中考虑这种类型的灵 active ?
最佳答案
您正在向函数传递关键字和一维列表。为什么要为函数定义中的索引烦恼呢?正如我所写的那样。
e = ['spam', ['aa','bb','cc','dd']]
def format(keyword, entries):
return [(keyword, x) for x in entries[1][0]]
format(e[0], e[1])
[('spam', 'b')]
根据对象是什么,您可能会遇到索引错误。函数中不需要索引。
def format(keyword, entries):
return [(keyword, x) for x in entries]
format(e[0], e[1])
[('spam', 'aa'), ('spam', 'bb'), ('spam', 'cc'), ('spam', 'dd')]
martineau 已经在我未能阅读的评论中回答了这个问题,所以在该归功的地方归功。对不起。
关于python - 灵活性问题 : Index Variables vs. 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167375/