将行号添加到词典列表

时间:2019-01-14 19:34:37

标签: python python-3.x dictionary

我有以下格言:

[
    {"new": "item"},
    {"from": "here"}
]

例如,有没有一种方法可以添加到该项目的索引位置,所以它最终会变成:

[
    {"idx": 0, "new": "item"},
    {"idx": 1, "from": "here"}
]

注意:我还想确保idx的位置在开头(python3支持dict排序)。

2 个答案:

答案 0 :(得分:3)

您可以将list comprehensionenumerate一起使用:

data = [
    {"new": "item"},
    {"from": "here"}
]

result = [{ **e, "idx" : i } for i, e in enumerate(data)]
print(result)

输出

[{'idx': 0, 'new': 'item'}, {'from': 'here', 'idx': 1}]

答案 1 :(得分:2)

oneliner重新创建字典-这非常浪费-分配和创建新字典需要大量时间/内存等。最好简单地迭代字典列表并添加索引键值对:

public boolean soldBook(){
    return customer.checksold(book);
}

public String review(){

    if (!customer.checksold(book)){
        return "IncorrectReview";
    }
    if(reviewtext.equals("") || reviewtext==null){
        return "";
    }
    customer.review(customer, book, reviewtext);
    return "CorrectReview";
}

输出:

k = [ {"new": "item"}, {"from": "here"}]

for i,d in enumerate(k):
    d["idx"] = i 

print(k)