我有两个列表如下。
mylist1 = [["lemon", 0.1], ["egg", 0.1], ["muffin", 0.3], ["chocolate", 0.5]]
mylist2 = [["chocolate", 0.5], ["milk", 0.2], ["carrot", 0.8], ["egg", 0.8]]
Run Code Online (Sandbox Code Playgroud)
我想得到两个列表中公共元素的平均值,如下所示。
myoutput = [["chocolate", 0.5], ["egg", 0.45]]
Run Code Online (Sandbox Code Playgroud)
我目前的代码如下
for item1 in mylist1:
for item2 in mylist2:
if item1[0] == item2[0]:
print(np.mean([item1[1], item2[1]]))
Run Code Online (Sandbox Code Playgroud)
然而,由于有两个for循环(O(n^2)复杂性),这对于很长的列表来说效率很低。我想知道在 Python 中是否有更标准/更有效的方法来做到这一点。
我在Github上尝试了许多库,但是它们都没有为TradingView产生匹配的结果,因此我按照此链接上的公式计算RSI指标。我使用Excel进行了计算,并使用TradingView整理了结果。我知道这是绝对正确的,但是我没有找到使用Pandas进行计算的方法。
100
RSI = 100 - --------
1 + RS
RS = Average Gain / Average Loss
The very first calculations for average gain and average loss are simple
14-period averages:
First Average Gain = Sum of Gains over the past 14 periods / 14.
First Average Loss = Sum of Losses over the past 14 periods / 14
The second, and …Run Code Online (Sandbox Code Playgroud)