簡體   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