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