我有两个清单:
list1 = ["T" "UH", "T"]
list2 = ["t", "oo", "t"]
第一个列表是音素,第二个列表是字形,每个字母彼此对应。我希望能够创建一个元组(音素,字形)作为默认字典的2元组键,并将字形序列设置为整数。
我希望它打印出来像这样:
defaultdict(, {('T', 'oo'): {'t': 1}, ('UH', 't'): {'oo': 1}, ('T', '^'): {'t': 1}}))
“^”值表示这是第一个启动单词的字素。
到目前为止,我有这个:
from collections import defaultdict
d = defaultdict(dict)
list1 = ["T" "UH", "T"]
list2 = ["t", "oo", "t"]
for char in list1:
d[char] += 1
答案 0 :(得分:2)
下面的代码可以解决问题。
"Di, "
我重命名变量以区分列表并创建第三个偏移列表以保持for循环简单。
答案 1 :(得分:1)
希望以下代码能够帮助您找到所需的解决方案:
from collections import defaultdict
d = defaultdict(dict)
phonemes = ["T", "UH", "T"]
graphemes = ["t", "oo", "t"]
for char in range(len(phonemes)):
if (char != (len(phonemes) - 1)):
d[(phonemes[char],graphemes[char + 1])]
else:
d[(phonemes[char],'^')]
for currentPhenome in d:
d[currentPhenome] = {graphemes[phonemes.index(currentPhenome[0])]:1}
print(d)
输出是:
defaultdict(<class 'dict'>, {('T', '^'): {'t': 1}, ('T', 'oo'): {'t': 1}, ('UH', 't'): {'oo': 1}})