<p>因此,我假设您的意思是,您希望查找字符串中也在列表中的字符数。for循环应执行以下操作:</p>
<pre><code>items_list = [ '$', '^', '#', '(', ')', '-', '.', '/', '1', '2', '3', '4', '5', '6', '7', '=', 'Br',
'C', 'Cl', 'F', 'I', 'N', 'O', 'P', 'S', '[2H]', '[Br-]', '[C@@H]', '[C@@]', '[C@H]', '[C@]',
'[Cl-]', '[H]', '[I-]', '[N+]', '[N-]', '[N@+]', '[N@@+]', '[NH+]', '[NH2+]', '[NH3+]', '[N]',
'[Na+]', '[O-]', '[P+]', '[S+]', '[S-]', '[S@+]', '[S@@+]', '[SH]', '[Si]', '[n+]', '[n-]',
'[nH+]', '[nH]', '[o+]', '[se]', '\\', 'c', 'n', 'o', 's', '!', 'E'];
length = 0;
string = 'N[C@H]1C[C@@H](N2Cc3nn4cccnc4c3C2)CC[C@@H]1c1cc(F)c(F)cc1F';
count = 0;
for i in string: # Annoyingly, Python only has foreach statements...
if (string[count] in items_list): # If this letter is in your list:
length += 1; # Length is one more
if (count > len(items_list) + 1): # If we have two letters to work with:
if ((string[count] + string[count + 1]) in items_list): # If the next two letters added together is an item in your list:
length += 1; # Length is one more
count += 1; # Skip the next two letters
if (count > len(items_list) + 2): # Same as above for three letters:
if ((string[count] + string[count + 1] + string[count + 2]) in items_list):
length += 1;
count += 2;
if (count > len(items_list) + 3): # Same as above but for four letters:
if ((string[count] + string[count + 1] + string[count + 2] + string[count + 3]) in items_list):
length += 1;
count += 3;
if (count > len(items_list) + 4): # And five:
if ((string[count] + string[count + 1] + string[count + 2] + string[count + 3] + string[count + 4]) in items_list):
length += 1;
count += 3;
count+= 1;
print(length);
</code></pre>
<p>这给了我44分的成绩</p>