【问题标题】:How to call the next line during enumerate when using if-and-if statement使用 if-and-if 语句时如何在枚举期间调用下一行
【发布时间】:2017-09-27 21:00:56
【问题描述】:

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

有时,索引 7 的值是“W”而不是“W2”。当前目标是创建一个新列表,即 AnalyteRatio_user_input。这将包含来自 MeanResponse_list 列表的浮点值之间的比率评估值。我相信当前的问题在于我试图使用 if-in-and-if-in 语句的第 3 行。我认为问题在于我试图调用枚举中的下一行,但 line+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') 

【问题讨论】:

  • 这个AnalyteName_user_input[i+1] ?
  • IndexError: 列表索引超出范围
  • 只有最后一行,是吗?
  • 是的,我是 395,AnalyteName_user_input 的大小是 396。

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


【解决方案1】:

试试这条线

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

请注意,最后一行的第二个条件总是为真。
如果您不想这样做,您应该将True 更改为False

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
相关资源
最近更新 更多