首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -如何根据列表B提取列表A中的数字?

Python -如何根据列表B提取列表A中的数字?
EN

Stack Overflow用户
提问于 2017-03-14 18:19:29
回答 6查看 126关注 0票数 1

我的目的是:对于B中的每个元素,我想创建一个列表,其中它包含列表B的元素和列表A中的较小的元素(比B元素)。

我尝试了两个for循环,但是,我不知道如何完成这项工作:

代码语言:javascript
复制
A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[]
for i in B:
    for r in A:
        if i>=r:
            C.append(r)

我希望得到这样的结果:

代码语言:javascript
复制
[[3,1,2,3],[4,1,2,3,4],[5,1,2,3,4,5]]

有什么建议吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-03-14 18:22:24

试试这个:

代码语言:javascript
复制
for i in B:
    new_list = [i]  # inner list starting with the elmt from B
    for r in A:
        if i >= r:
            new_list.append(r)  # append to inner list
    C.append(new_list)  # finally append inner list to C
票数 0
EN

Stack Overflow用户

发布于 2017-03-14 18:22:28

您是否尝试过在其中一个循环中使用数组:

代码语言:javascript
复制
A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[]
for b in B:
    c = [b]
    for a in A:
        if a <= b:
            c.append(a)
    C.append(c)
print(C)
票数 0
EN

Stack Overflow用户

发布于 2017-03-14 18:39:01

如果您想把它写成一行:

代码语言:javascript
复制
A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[[b] + [a for a in A if a <= b] for b in B]
print(C)

版画

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

https://stackoverflow.com/questions/42793635

复制
相关文章

相似问题

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