[英]Creating Array with Comparison from Other Arrays in Python
我有一个简单的问题,但遇到了一些障碍。 问题是这样的,我有2个数组:
a=['A','B','C','D','E']
i=['C','F']
我正在尝试比较两者,并且第二个array(i)中的项目与第一个中的项目不匹配,我试图使用不匹配的位置更新array(i),并用空白值('')
因此,我试图以这种解决方案结束:
i=['','',C,'','',F]
我尝试了插入方法:
for n,x in enumerate(a):
for item in i:
if x != item:
i.insert(n,'')
不工作
此列表理解功能将帮助您完成以下工作:
a_set = set(a) # using sets allows the `in` function to run in
i_set = set(i) # constant time vs. running in linear time (its faster for large data sets)
[x if x in i_set else "" for x in a] + [x for x in i if x not in a_set]
它经过的每个项目a
第一。 如果出现在i
,则添加该项目,否则添加""
。 然后它经过的每个项目i
,如果它出现在检查a
,如果没有,把它添加到列表中。 然后使用+
运算符将这两个列表彼此附加。
然后,您可以将其分配给i
以获得所需的输出。
>>> a_set = set(a)
>>> i_set = set(i)
>>> i =[x if x in i_set else "" for x in a] + [x for x in i if x not in a_set]
>>> i
["", "", "C", "", "", "F"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.