为列表数组选择字符以设置条件



我创建了一个函数,用于检查列表数组中是否存在字符。我知道哪些字符会给出积极的结果,但表示消极结果的字符可能是不在积极字符列表中的任何字符。当一个字符出现在列表数组上时,我希望通过将其附加到一个新列表来对其进行计数。

到目前为止,我已经有了这个功能,但我无法获得识别我不想要的字符的功能。一切都是消极的结果。我知道为什么结果是否定的,但我不能设置一个条件检查,它有一个包含字符的列表,可以在任何位置。

def sequence_compare(seq_1, seq_2,):
len1= len(seq_1)
len2= len(seq_2)
error_list =[]
for pos in range (0,min(len1,len2)):
if seq_1 or seq_2 != ['M','W','A','N','G']:
error_list.append('*')
else:
error_list.append(' ')
print (seq_1)
print (error_list)
print (seq_2)
print ("Number of Error:")
print (error_list.count('*'))
seq_1 = ['T','W','A','N']
seq_2 = ['T','R','A','L']
sequence_compare(seq_1, seq_2) 

编辑:我应该澄清一下,我正在寻找一个看起来像这样的输出:

['T', 'W', 'A', 'N']
[' ', ' ', ' ', '*']
['T', 'R', 'A', '!']
Number of Error:
1

哪里"!"不是我想作为错误返回的字符之一。但"T"、"W"、"R"、"A"one_answers"N"等我已经知道的字符是我不想作为错误返回的字符。正如"W"one_answers"R"所示,它们不需要匹配就可以成为真正的

在您的解决方案中,您正在比较字符串和数组。结果总是false,因此是'*',因为字符串和数组总是不相等。

您想要的是检查两个字符串中的每个字符。为此,可以使用in运算符。在您的情况下,它应该有以下语法:

if your_string[pos] in ['symbol1', 'symbol2', ...]:
print("Yes, symbol in string 'your_string' on position 'pos' is one of the listed symbols")
else:
print("No, symbol in string 'your_string' on position 'pos' is not in the list")

生成的代码如下所示:

def sequence_compare(seq_1, seq_2,):
len1= len(seq_1)
len2= len(seq_2)
error_list =[]
for pos in range (0,min(len1,len2)):
if seq_1[pos] not in ['M','W','A','N','G'] or seq_2[pos] not in ['M','W','A','N','G']:
error_list.append('*')
else:
error_list.append(' ')
print (seq_1)
print (error_list)
print (seq_2)
print ("Number of Error:")
print (error_list.count('*'))
seq_1 = ['T','W','A','N']
seq_2 = ['T','R','A','L']
sequence_compare(seq_1, seq_2) 

输出:

['T', 'W', 'A', 'N']
['*', '*', ' ', '*']
['T', 'R', 'A', 'L']
Number of Error:
3

编辑:上面的代码是我如何理解您的任务的。如果输出与所需的不同,则需要使用notor/and运算符来获得正确的解决方案。

最新更新