我有一个看起来像这样的词典列表:
[
{'stim': 'I', 'condition1': 0, 'condition2': 1, 'condition3': 0},
{'stim': 'nev,er.', 'condition1': 0, 'condition2': 1, 'condition3': 0},
{'stim': 'he,si,ta,te', 'condition1': 0, 'condition2': 1, 'condition3': 1},
{'stim': 'while', 'condition1': 0, 'condition2': 1, 'condition3': 1},
{'stim': 'dri,ving', 'condition1': 0, 'condition2': 1, 'condition3': 0}, etc.]
我想要遵守的是以下结果:
[
{'stim': 'I', 'condition1': 0, 'condition2': 1, 'condition3': 0},
{'stim': 'nev', 'stim1':'er.','condition1': 0, 'condition2': 1, 'condition3': 0},
{'stim': 'he', stim1:'si', stim2:'ta', stim3:'te.', 'condition1': 0, 'condition2': 1, 'condition3': 1},
{'stim': 'while', 'condition1': 0, 'condition2': 1, 'condition3': 1},
{'stim': 'dri','stim1': 'ving.', 'condition1': 0, 'condition2': 1, 'condition3': 0}, etc.]
只有当一个单词用逗号值连字时,我才需要代码来创建与(剩余的)音节值组合的附加键。我对编程很新,而且我没有比这更进一步:
for dict in list:
if "," in (dict['stim']):
dict.update({'word1':'syllable'})
我不知道如何添加所需数量的密钥。我也没有成功获得相应值的实际音节。
非常感谢任何帮助。
答案 0 :(得分:1)
这应该这样做:
for d in inputlist:
words = d['stim'].split(',')
d['stim'] = words[0]
d.update(('stim{}'.format(i), word) for i, word in enumerate(words[1:], 1))
这会将d['stim']
替换为,
上拆分的第一个值(如果没有逗号,则可能只是一个元素)。然后用一系列键值对更新字典,从其余单词及其索引(从1开始)生成。
答案 1 :(得分:0)
for dict in list:
if "," in (dict['stim']):
result = dict['stim'].split(',') # get a list of individual syllables
dict['stim'] = result.pop(0) # store the first syllable in the existing dict key
for index, syllable in enumerate(result, 1): #for every other syllable update dict
dict['stim'+str(index)] = syllable})
我会改变字典和列表的名称。我离开了他们,所以他们匹配你的示例代码。