Python列出了if else concatenation add elements

时间:2015-11-03 10:41:38

标签: python list if-statement concatenation

我正在尝试这样做:

for i in range(len(daysDial)):
    if dayDial[i] in daysPresence:
        for j in range(len(daysPresence)):
            if daysDial[i]== daysPresence[j]:
                rowsPresence.append(dataPresencePy[j][1])

    else:
        rowsPresence.append("no presence")

用另一种方式:

rowsPresence = [dataPresencePy[j][1] for i in range(len(daysDial)) 
                if daysDial[i] in daysPresence else "no presence" 
                for j in range(len(daysPresence))
                if daysDial[i] == daysPresence[j]]

但它无法正常工作。这可能吗。

1 个答案:

答案 0 :(得分:1)

你的循环顺序错误;我想你想要的是:

[[dataPresencePy[j][1] for j in range(len(daysPresence)) 
  if daysDial[i] == daysPresence[j]] 
 if daysDial[i] in daysPresence else "no presence" 
 for i in range(len(daysDial))]

但是,正如评论中指出的那样,这比可展开的循环版本更不易读,并且可能没有更高的性能。

另外,有一个列表,其元素是字符串"no presence"或列表 - 为什么不是None或空列表似乎很奇怪?