首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python使用一个列表理解创建两个列表

Python使用一个列表理解创建两个列表
EN

Stack Overflow用户
提问于 2018-07-18 03:56:25
回答 1查看 524关注 0票数 -2

我目前正在使用嵌套的for循环一次将数据添加到两个列表。请参见下面的代码。

headers,在下面的代码中是一个漂亮的soup对象。

代码语言:javascript
复制
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。作为一个粗略的例子,我知道我可以这样做

代码语言:javascript
复制
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]

我担心这会花费大约两倍的时间,因为循环操作要执行两次。但是有没有一种方法可以把这两个语句结合起来,比如

代码语言:javascript
复制
openData, closeData =  [list comprehension]

我还对如何将if,elif逻辑融入到列表理解中感到困惑。最后,这是我应该做的事情吗?或者这样做是对列表理解的滥用。我写的上面的代码可以工作,但是看起来很难看。我的目标是比我所拥有的更好的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 04:04:36

我的尝试(使用一些基本的初始数据):

代码语言:javascript
复制
#some initial data
data = list(range(20))

openData, closeData = data[1::6], data[4::6]

print(openData, closeData)

打印:

代码语言:javascript
复制
[1, 7, 13, 19] [4, 10, 16]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51389298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档