python - 灵活性问题 : Index Variables vs. 常量

标签 python

考虑以下假设情况。

作为您使用 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 变量具有静态索引整数 10。假设您预计新术语可能会附加到 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/

相关文章:

python - 有没有办法在 matplotlib 中标记多个 3d 表面?

python - 将 .distinct() 与 MySQL 一起使用

python - 排除正则表达式中的字符串

python - 将数据框中的列拆分为两个新的数据框

python - Geodjango距离查询未检索到正确的结果

python - 将具有列表中值的字典转换为 Pandas DataFrame

适用于 Windows 的 Python cron 脚本

javascript - 如何从django中的日期选择器获取日期

python - 有没有办法智能地删除零行以获得 python 中的方矩阵?

python - 迭代 jinja 数组