使用if-and-if语句时如何在枚举期间调用下一行

时间:2017-04-30 02:18:19

标签: python python-3.x for-loop if-statement append

我正在处理下面的代码,其中AnalyteName_user_input是一个字符串列表,如下图所示。

AnalyteName_user_input

偶尔会有一个实例,其中索引7的值是'W'而不是'W2'。目前的目标是创建一个新的列表,即AnalyteRatio_user_input。这将包含MeanResponse_list列表中浮点值之间的比率评估值。我认为目前的问题在于第3行,我试图使用if-in-if-in语句。我认为问题是我试图调用枚举中的下一行,但是行+ 1是来自AnalyteName_user_input列表的'W'值。我如何解决这个问题来调用列表中的下一行而不是字符串,然后添加一些int值?

AnalyteRatio_user_input = []
for i, line in enumerate(AnalyteName_user_input):
    if 'W' in line and 'W2' in line+1: # need a way to define the next line. Unsure about this.
    AnalyteRatio_user_input.append(MeanResponse_list[i]/MeanResponse_list[i+5])
    AnalyteRatio_user_input.append(MeanResponse_list[i+1]/MeanResponse_list[i+5])
    AnalyteRatio_user_input.append(MeanResponse_list[i+2]/MeanResponse_list[i+5])
    AnalyteRatio_user_input.append(MeanResponse_list[i+3]/MeanResponse_list[i+5])
    AnalyteRatio_user_input.append(MeanResponse_list[i+4]/MeanResponse_list[i+5])
    AnalyteRatio_user_input.append(MeanResponse_list[i+5]/MeanResponse_list[i+5])
else:
    AnalyteRatio_user_input.append('N/A') 

1 个答案:

答案 0 :(得分:0)

试试这一行

if 'W' in line and ('W2' in AnalyteName_user_input[i+1] if i < len(AnalyteName_user_input)-1 else True) : 

请注意,对于最后一行,第二个条件总是评估为真 如果您不希望这样,则应将True更改为False