繁体   English   中英

Python 字典,读取列表并附加字典的值

[英]Python Dictionary, Reading a list and appending the values of a dictionary

我有一个示例输入 csv 文件(制成列表),如下所示:

Alfa,Beta,Charlie,Delta,Echo
A1,B1,C1,D1,AX1
A2,B2,C2,D2,BX1
A3,B3,C3,D3,CX1
A4,B4,C4,D4,BX1/CX1
A4,B4,C4,D4,CX1/AX1
A4,B4,C4,D4,AX1/BX1

然后我的示例代码如下所示:

#feed is the list I posted above

column_numbers = 'Echo'

ID_dict = {"AX1" : "AA1,AA2,AA3",
           "BX1" : "BB1,BB2,BB3",
           "CX1" : "CC1,CC2,CC3"
           }

for row in feed: 
    column_key = row[column_numbers]
    for item in ID_dict[column_key].split(','):
        row[column_numbers] = item
        print(item)

如果我运行它并打印(项目),我将获得的“Echo”列的结果将是:

AA1
AA2
AA3
BB1
BB2
BB3
CC1
CC2
CC3

但是,由于我发布的列表中有“BX1/CX1、CX1/AX1 和 AX1/BX1”,我该如何在读取 BX1/CX1 的位置添加它,然后从字典中附加正确的值。 例如,如果显示 BX1/CX1,则应为 output:

BB1
BB2
BB3
CC1
CC2
CC3

或者如果它说 BX1/AB1/CX1,它将使用字典然后添加值,它应该是 output:

BB1
BB2
BB3
AA1
AA2
AA3
CC1
CC2
CC3
cat sample.csv                                                                                                                                                            
Alfa,Beta,Charlie,Delta,Echo
A1,B1,C1,D1,AX1
A2,B2,C2,D2,BX1
A3,B3,C3,D3,CX1
A4,B4,C4,D4,BX1/CX1
A4,B4,C4,D4,CX1/AX1
A4,B4,C4,D4,AX1/BX1

import csv

with open('sample.csv') as csv_file:
    column_numbers = 'Echo'
    ID_dict = {"AX1" : "AA1,AA2,AA3",
           "BX1" : "BB1,BB2,BB3",
           "CX1" : "CC1,CC2,CC3"
           }
    reader = csv.DictReader(csv_file)
    for row in reader:
        if row[column_numbers]:
            for ky in row[column_numbers].split('/'):
                for item in ID_dict[ky].split(','):
                    print(item)



AA1
AA2
AA3
BB1
BB2
BB3
CC1
CC2
CC3
BB1
BB2
BB3
CC1
CC2
CC3
CC1
CC2
CC3
AA1
AA2
AA3
AA1
AA2
AA3
BB1
BB2
BB3

字符串有一个split() function 通过在一些分隔符上拆分字符串来创建一个数组。

> 'abc'.split('/')   # The return value is always an array
['abc']
> 'a/b/c'.split('/')
['a', 'b', 'c']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM