[英]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.