python - 如何在 python Class-list 中有效地制作一个编号列表

标签 python processing-efficiency coding-efficiency

如何让下面的代码更简洁高效。

这里的代码是找到某个数值在列表中的位置。 例如,给定一组数字

ListNo = [[100,2,5], [50,10], 4, 1, [6,6,500]]

100、50、500的值分别在0、3、9的位置。

测试代码如下

ListNo = [[100,2,5], [50,10], 4, 1, [6,6,500]]
NumberedList = ListNo
Const = 0
items = 0

for i, item in enumerate(ListNo):
    MaxRange = len(item) if isinstance(item, list) else 1

    for x in range(0, MaxRange):
        if MaxRange > 1:
            NumberedList[i][x] = Const
        else:
            NumberedList[i] = Const
        Const = Const + 1

print(NumberedList)

[[0, 1, 2], [3, 4], 5, 6, [7, 8, 9]]

我的问题是,是否有另一种选择可以使这段代码更加紧凑和高效。

最佳答案

你可以使用itertools.count:

from itertools import count
i = count()
print([[next(i) for _ in range(len(l))] if isinstance(l, list) else next(i) for l in ListNo])

这个输出:

[[0, 1, 2], [3, 4], 5, 6, [7, 8, 9]]

关于python - 如何在 python Class-list 中有效地制作一个编号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52716448/

相关文章:

java - 我需要有效地解密文件

arrays - 合并 n 个数组 A1..An,每个数组 Ai 是 {1..i} 的随机子集

python - python 中的 lambda 列表

python - 查找困在列表中的字符数

python - Google Cloud Endpoints 可以与文本转语音配合使用吗?

php - 我是否采取了正确的方法来处理这些文件? (带有 PHP 的 CSV)

python - 如何有效地比较 Python 中的大型列表?

javascript - 创建复杂 JavaScript 形状的有效方法

python - 将 _constraints 更改为 _sql_constraints - Odoo v8 到 Odoo v10 社区

java - 如何从 Java 运行 python 2.7 代码?