将CSV中的特定列转换为字典和某些逻辑 - Python

时间:2015-06-15 17:02:44

标签: python list csv dictionary

List A包含值:

abc11  198
abc12  178
abc11  198
abc13  123 and so on

我编写了一个删除所有重复项的函数,并将唯一的abc值存储在List B = ['abc11', 'abc12', 'abc13', ... ]

CSV文件包含:

abc11  bvc  ex  123  456  somestuffhere
abc11  bvc  ex  456  476  somestuffhere
abc12  bvc  ex  173  426  somestuffhere
abc12  bvc  ex  426  496  somestuffhere
abc13  bvc  ex  143  796  somestuffhere
abc13  bvc  ex  743  896  somestuffhere

我希望将第0列值作为键,将第3列和第4列作为值,仅在键相同时使用最小(或第三)和最大(或第四)值。我也不确定这些值是否作为字典中的列表是最好的,因为我需要稍后用另一个列表检查这些值。

{'abc11':['123','476'],'abc12':['173','496'],'abc13':['143','896']}

我正在尝试匹配list A中的匹配值,如果词典中的键与List B匹配,那么我需要检查List A中的数值是否为({1}}相应的abc值)在字典中的特定abc值之间。如果是,我想将abc及其值附加到单独的列表中。我在下面的代码中使用了相同的列表,但是我希望将csv文件值存储为字典并执行操作。

到目前为止我的代码:

# abc_value                      #list_A
# list_no_rep                    #list_B

match_list = []
with open('new.csv', 'r') as file_open:
lines = csv.reader(file_open, delimiter = '\t')

for row in lines:
    for abcs in list_no_rep:
        if row[0] == abcs:
            for value_row in abc_value:
                if row[3] <= value_row[1] <= row[4]:
                    match_list.append(value_row)

任何帮助都将不胜感激。

0 个答案:

没有答案