我目前正在使用嵌套的for循环将数据一次添加到两个列表中。参见下面的代码。
标题,在下面的代码中是一个漂亮的汤对象。
openData = []
count = 0
openC = 7
closeData = []
closeC = 10
for j in headers:
for z in j:
for data in z:
count += 1
if count == 1:
openData.append(data)
elif count == openC:
openData.append(data)
openC += 6
if count == 4:
closeData.append(data)
elif closeC == count:
closeData.append(data)
closeC += 6
这里的两个列表是openData和closeData。 作为一个粗略的例子,我知道我可以做类似
openData = [data for j in headers for z in j for data in z]
closeData = [data for j in headers for z in j for data in z]
我担心这大约需要两倍的时间,因为循环操作要执行两次。但是有一种方法可以将
这样的两个语句组合在一起openData, closeData = [list comprehension]
对于如何将if,elif逻辑合并到列表理解中,我也感到困惑。最后,这是我应该做的事情吗?否则会滥用列表理解力。我写的上面的代码有效,但是看起来很丑。我的目标是编写比我现有的更好的代码。
答案 0 :(得分:2)
我的尝试(带有一些基本的初始数据):
#some initial data
data = list(range(20))
openData, closeData = data[1::6], data[4::6]
print(openData, closeData)
打印:
[1, 7, 13, 19] [4, 10, 16]