【发布时间】:2017-08-24 01:18:56
【问题描述】:
设置
我有以下组列表,
lofl=[A,B,...,N]
其中每个组都包含子组,
A=['A1','A2','A3',...,An]
B=['B1','B2','B3',...,Bn]
# ⋮ ⋮
N=['N1','N2','N3',...,Nn]
最后,我有一本字典data。
意图
我想检查一下,例如子组An 在lofl 中,如果是这样,我想将其字符串名称'A' 分配给data['group'] 并将An 分配给data['subgroup']。
注意:在我的实际数据集中,A,B,...,N 和An,Bn,...,Nn 都是没有数字的名字。
当前代码
if x in lofl:
if x in A:
data['group']='A'
data['subgroup']=x
elif x in B:
data['group']='B'
data['subgroup']=x
# ⋮
elif x in N:
data['group']='N'
data['subgroup']=x
else:
data['group']='unknown'
data['subgroup']=x
问题
代码有点长。此外,我想在组名不同的不同数据集上重用代码。我想避免必须为每个数据集替换代码中的名称。有什么建议吗?
【问题讨论】:
-
为什么会有一长串名字,每一个都引用一个列表?将它们移动到字典中,这样您就可以在键值对上使用循环。
-
@MartijnPieters 我将如何在键值对上进行循环?我是 python 新手。
标签: python list dictionary assign