我有一个空数组和两个数据数组
results = tk.Frame(self)
f = Figure()
ax0 = f.add_subplot(211)
ax1 = f.add_subplot(212)
self.canvas = FigureCanvasTkAgg(f, results)
self.canvas.get_tk_widget().pack(expand=True, fill='both')
我的目标是在 ax0, ax1 = self.canvas.figure.get_axes()
ax0.clear()
ax0.plot(x, y)
ax1.clear()
ax1.plot(x, z)
self.canvas.draw()
附加var resultsArray = [String]()
var array1 = ["1","2","2","3","4"]
var array2 = ["1","2","2","3","4","5","6"]
中与resultsArray
不匹配的元素(示例中为“5”和“6”)。
最简单的方法是什么?
谢谢。
答案 0 :(得分:18)
使用filter
功能
var resultsArray = [String]()
let array1 = ["1","2","2","3","4"]
let array2 = ["1","2","2","3","4","5","6"]
let filteredArray = array2.filter{ !array1.contains($0) }
resultsArray.appendContentsOf(filteredArray)
如果集合包含唯一项目,请考虑使用Set
而不是Array
答案 1 :(得分:1)
var resultsArray: [String] = []
let arrayX = ["1","2","2","3","4"]
let arrayY = ["1","2","2","3","4","5","6","7"]
let setX = Set(arrayX), setY = Set(arrayY)
resultsArray.append(contentsOf: setY.subtracting(setX))
这个答案比使用过滤器更快。
答案 2 :(得分:0)
使用过滤器功能来查找两个数组中不同数量的元素
let Filter = array2.filter{!array1}
resultArray.appendContentsof(Filter)