<p>对于第一个问题,使用<a href="https://www.python.org/dev/peps/pep-0274/" rel="nofollow noreferrer">^{<cd1>}</a>迭代从<a href="https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects" rel="nofollow noreferrer">^{<cd2>}</a>获得的键、值对,并检查键是否为<code>in</code>dict:</p>
<pre><code>>>> string_to_check = 'TEST13-872B-A22E'
>>> substrings = {'TEST': 0, 'WORLD': 1, 'CORONA':2}
>>> [val for key, val in substrings.items() if key in string_to_check]
[0]
</code></pre>
<p>但是对于您的实际问题,您可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.join" rel="nofollow noreferrer">^{<cd4>}</a>将带有<code>|</code>字符的<a href="https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects" rel="nofollow noreferrer">^{<cd5>}</a>与<code>substrings</code>中的<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.extract.html" rel="nofollow noreferrer">^{<cd7>}</a>连接到<a href="https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects" rel="nofollow noreferrer">^{<cd8>}</a>,然后<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html" rel="nofollow noreferrer">^{<cd10>}</a>将结果连接到<code>substrings</code>:</p>
<pre><code>>>> df
string_to_check
0 'TEST13-872B-A22E'
1 'CORONA1-241-22E'
2 'TEST32-33A-442'
3 'WORLD4-BB2-A343'
>>> df.assign(result=
df.string_to_check
.str.extract(f"({'|'.join(substrings.keys())})", expand=False)
.map(substrings))
string_to_check result
0 'TEST13-872B-A22E' 0
1 'CORONA1-241-22E' 2
2 'TEST32-33A-442' 0
3 'WORLD4-BB2-A343' 1
</code></pre>