繁体   English   中英

使用Python中的其他阵列进行比较创建阵列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM