首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编辑列表,同时将其与另一个列表作为约束进行比较

编辑列表,同时将其与另一个列表作为约束进行比较
EN

Stack Overflow用户
提问于 2015-11-14 12:47:03
回答 3查看 37关注 0票数 1

我有一个包含一些文字的列表,而另一个列表中只包含所需的文字,我想得到一个包含相关文字和符号的输出,我应该如何计算这个输出?非常感谢

代码语言:javascript
运行
复制
list=[0,-1, 2, 3, 11, 12, -13, 21, -22, 23, 31, -32, 33, 50, 20, 30]

needed literals = [11, 12, 13, 21, 22, 23, 31, 32, 33]

output = [11, 12, -13, 21, -22, 23, 31, -32, 33]

编辑:每一个文字也是一个字符串,例如:'11','-12‘等等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-14 12:48:50

对于清单理解来说,这是非常容易的:

代码语言:javascript
运行
复制
literal_list = [0, -1, 2, 3, 11, 12, -13, 21, -22, 23, 31, -32, 33, 50, 20, 30]
needed_literals = [11, 12, 13, 21, 22, 23, 31, 32, 33]
output = [n for n in literal_list if abs(n) in needed_literals]
#=> [11, 12, -13, 21, -22, 23, 31, -32, 33]

如果两个列表的元素都是字符串而不是整数,则可以在以下条件下进行转换:

代码语言:javascript
运行
复制
output = [n for n in literal_list if str(abs(int(n))) in needed_literals]
票数 2
EN

Stack Overflow用户

发布于 2015-11-14 12:53:04

代码语言:javascript
运行
复制
lis=[0,-1, 2, 3, 11, 12, -13, 21, -22, 23, 31, -32, 33, 50, 20, 30]

literals = [11, 12, 13, 21, 22, 23, 31, 32, 33]

output=[]
li=0
i=0
for i in range(0,len(lis)-1):
   if mod(literals[li])==lis[i]:
      output.append(lis[i])
      li+=1
   i+=1
print output
票数 0
EN

Stack Overflow用户

发布于 2015-11-14 13:13:16

代码语言:javascript
运行
复制
input_list=[0,-1, 2, 3, 11, 12, -13, 21, -22, 23, 31, -32, 33, 50, 20, 30]
needed_literals = [11, 12, 13, 21, 22, 23, 31, 32, 33]

带复制件:

代码语言:javascript
运行
复制
output = [ for i in input_list if abs(i) in needed_literals]

没有副本:

代码语言:javascript
运行
复制
output = [ for i in set(input_list) if abs(i) in needed_literals]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33708547

复制
相关文章

相似问题

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