Python 列出 if else 串联添加元素
Python lists if else concatenation adding elements
我正在尝试这样做:
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]]
但它不能正常工作。这个可以吗
你的循环顺序错误;我想你想要的是:
[[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
或空列表呢?
我正在尝试这样做:
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]]
但它不能正常工作。这个可以吗
你的循环顺序错误;我想你想要的是:
[[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
或空列表呢?