我有一个包含一些文字的列表,而另一个列表中只包含所需的文字,我想得到一个包含相关文字和符号的输出,我应该如何计算这个输出?非常感谢
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‘等等。
发布于 2015-11-14 12:48:50
对于清单理解来说,这是非常容易的:
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]
如果两个列表的元素都是字符串而不是整数,则可以在以下条件下进行转换:
output = [n for n in literal_list if str(abs(int(n))) in needed_literals]
发布于 2015-11-14 12:53:04
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
发布于 2015-11-14 13:13:16
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]
带复制件:
output = [ for i in input_list if abs(i) in needed_literals]
没有副本:
output = [ for i in set(input_list) if abs(i) in needed_literals]
https://stackoverflow.com/questions/33708547
复制相似问题