从列表中提取值添加到字典中

时间:2018-01-27 23:24:18

标签: python python-3.x list dictionary

我有一个列表,例如pa_l = [[ABU, XXXXX, 0],[AZE, CCCCC,0]]。此pa_l包含243个列表。 iso_pa是仅包含国家/地区代码的列表,例如:

  

ABU和AZE(以及其他人)

我需要创建一个字典all_countries = {},其中每个国家/地区代码都有自己的名称。为此,我创建了以下代码:

for i in iso_pa:
    if i not in all_countries.keys():
        all_countries[i] = pa_l[i][1]

但这不起作用。如果有人能帮助我,我会很高兴。

4 个答案:

答案 0 :(得分:0)

for i in range (len (iso_pa)):
  if iso_pa [i] not in all_countries.keys():
    all_countries [iso_pa [i]] = pa_l [i][1]

答案 1 :(得分:0)

如您所述,您要准备一个字典,其中country_code映射到国家/地区名称。在我们的代码中有一个小的修复:

select pid, pg_blocking_pids(pid) as blocked_by, query as blocked_query
from pg_stat_activity
where pg_blocking_pids(pid)::text != '{}';

答案 2 :(得分:0)

列表列表对于查找CREATE TABLE resolver_names ( username text PRIMARY KEY, entityid uuid ) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = '' AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'} AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND crc_check_chance = 1.0 AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99PERCENTILE'; 列表中的代码来说并不是一个很好的结构。因此,首先将较长的列表转换为字典,然后从结果中选择您需要的名称:

iso_pa

答案 3 :(得分:0)

您可以使用itertools.groupby格式pa_l,以便更轻松地访问该国家/地区的第一个匹配项及其代码:

import itertools
pa_l = [['ABU', 'XXXXX', 0],['AZE', 'CCCCC',0]]
new_data = {a:list(b)[0][-1] for a, b in itertools.groupby(sorted(pa_l, key=lambda x:x[0]), key=lambda x:x[0])}

输出:

{'ABU': 0, 'AZE': 0}