我有一个大约700行3列的CSV文件,包含label
、rgb
和string
信息,例如:
str; rgb; label; color
bones; "['255','255','255']"; 2; (241,214,145)
Aorta; "['255','0','0']"; 17; (216,101,79)
VenaCava; "['0','0','255']"; 16; (0,151,206)
我想创建一个简单的方法,将一个唯一的输入转换为一个唯一的输出
一种解决方案是将所有roisplayColor条目与相应的标签条目作为字典进行散列,例如rgb2label
:
with open("c:\my_file.csv") as csv_file:
rgb2label, label2rgb = {}, {} # rgb2str, label2str, str2label...
for row in csv.reader(csv_file):
rgb2label[row[1]] = row[2]
label2rgb[row[2]] = row[1]
这可以简单地使用如下:
>>> rgb2label[ "['255','255','255']"]
'2'
>>> label2rgb['2']
"['255','255','255']"
这个应用程序很简单,但是每个关系都需要一个唯一的字典(rgb2label
、rgb2str
、str2rgb
、str2label
,等等)
是否有一个更紧凑、使用更方便的解决方案?
在这里,您将自己限制为一对一的字典,因此最终会有大量的字典(这里是4^2=16)
您可以改为使用一对多词典,因此只有4个:
你可以这样使用:
您还可以通过将行转换为
dict
来更清楚地说明这一点:你可以这样使用:
相关问题 更多 >
编程相关推荐