首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代,如果字典A中的值大于字典B,那么放入字典C?

迭代,如果字典A中的值大于字典B,那么放入字典C?
EN

Stack Overflow用户
提问于 2020-08-27 21:23:54
回答 2查看 36关注 0票数 0

此代码获取股票的当前价格及其当前的21天均线。

代码语言:javascript
复制
import yfinance as yf 
import numpy as np
import bs4
import stockquotes
import pandas as pd

symbol_name = ['F', 'XOM']
symbol_data = {}
for symbol in symbol_name:
    ticker = stockquotes.Stock(symbol)
    today_price = ticker.current_price
    symbol_data[symbol] = today_price

print(symbol_data)

ema_data = {}
for x in symbol_name:
    symbol = yf.Ticker(x)
    quote = symbol.history(period='1mo',interval='1d') 
    quote = quote.sort_index()
    ema = 21
    quote['ewm'] = quote['Close'].ewm(span=ema,min_periods=0,adjust=False,ignore_na=False).mean()
    ema_quote = quote['ewm'].iloc[-1]
    ema_data[x] = ema_quote

print(ema_data)

输出:

代码语言:javascript
复制
{'F': 6.82, 'XOM': 40.01}
{'F': 6.912368574990924, 'XOM': 42.168230541483716}

我的问题是如何编写以下代码:

代码语言:javascript
复制
If a one of the stock's EMA is lower than it's current price then put it into a new dictionary.

有人能告诉我如何得到这个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-27 22:01:13

代码语言:javascript
复制
dict1 = {'F': 6.82, 'XOM': 40.01} 
dict2 = {'F': 6.912368574990924, 'XOM': 42.168230541483716} 
dict3 = {}
for key in dict1.keys():
    if dict1.get(key) < dict2.get(key):
        dict3[key] = dict2.get(key)

输出:

代码语言:javascript
复制
{'F': 6.912368574990924, 'XOM': 42.168230541483716}
票数 1
EN

Stack Overflow用户

发布于 2020-08-27 22:21:38

这应该是可行的:

代码语言:javascript
复制
for key in symbol_name:
    if ema_data[key] < symbol_data[key]:
        new_dict[key] = symbol_data[key]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63617001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档