簡體   English   中英

從字典列表中創建具有特定值的列表(鍵作為字符串,值是整數列表)

[英]Creating a list with specific values from a list of dictionaries (keys as strings and values are list of integers)

我有一個帶有字符串的字典列表和一個字符串列表作為它們各自鍵的值:

list_of_dictionaries = [
    {'id': 'ABBA', 'num': ['10', '3', '5', '1']},
    {'id': 'ABAC', 'num': ['4', '5', '6', '20']}]

'id' 字符串中的每個字母對應於匹配索引處的 'num' 中的數字。 因此,對於值 'ABBA',它將按順序匹配每個位置的 'num' 中的值:A = 10,B = 3,B = 5,A = 1。我想返回一個包含 'num' 的 id 列表> 5 在每個字典中,同時保持其當前順序。

這是我的嘗試:

bad_values = ['','0','1','2','3','4','5']
final_ids =[]
for i in list_of_dictionaries:
     list_of_high_num =[]
     for id,num in enumerate(i.items()):
          if i["num"] is not bad_values:
             list_of_high_num.append(i["id"])
        final_ids.append(list_of_high_num)

但是,我只是將原始 ID 字符串恢復到列表中。 我哪里錯了?

期望的輸出是這樣的:

final_list = [['A'], ['A', 'C']]

考慮每個dictionary項的場景len(id) = len(num)

list_of_dictionaries = [
    {'id': 'ABBA', 'num': ['10', '3', '5', '1']},
    {'id': 'ABAC', 'num': ['4', '5', '6', '20']}]

limit = 5

outerlist = []
for d in list_of_dictionaries:
    innerlist = []
    for x in range(len(d['num'])):
        if int(d['num'][x]) > limit:
            innerlist.append(d['id'][x])
    outerlist.append(innerlist)

print(outerlist) # [['A'], ['A', 'C']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM