擅长:python、mysql、java
<p>这就是你要找的吗?你知道吗</p>
<pre><code>import re
value_list = []
inp_str = 'blahblah[[blahblah]]thi ng1[[junk]]hmm'
tokenDic = dict()
#remove everything in double brackets
bracket_stuff_removed = re.sub(r'\[\[[^]]*\]\]', '', inp_str)
#function to keep only letters and digits
clean_func = lambda x: 97 <= ord(x.lower()) <= 122 or 48 <= ord(x) <= 57
for token in bracket_stuff_removed.split(' '):
cleaned_token = ''.join(filter(clean_func, token))
tokenDic[cleaned_token] = list(value_list)
print(tokenDic)
</code></pre>
<p>输出:</p>
<pre><code>{'blahblahthi': [], 'ng1hmm': []}
</code></pre>
<p>至于附加到名单上,我现在没有足够的信息告诉你最好的方式在你的情况。你知道吗</p>
<p>如果要在添加键时设置值,请执行以下操作:</p>
<pre><code>tokenDic[cleaned_token] = [val1, val2, val3]
</code></pre>
<p>如果要在添加键后设置值,请执行以下操作:</p>
<pre><code>val_to_add = "something"
if tokenDic.get(cleaned_token, -1) == -1:
print('ERROR', cleaned_token, 'does not exist in dict')
else:
tokenDic[cleaned_token].append(val_to_add)
</code></pre>
<p>如果您想在这两种情况下直接附加到dict,您需要使用defaultdict(list)而不是dict。。然后,如果dict中不存在该键,它将创建该键,使该值成为空列表,然后添加您的值。你知道吗</p>