Python 3.x 在Python中使用负索引获取特定范围内的列表元素
输入Python 3.x 在Python中使用负索引获取特定范围内的列表元素,python-3.x,Python 3.x,输入 list1 = ['Apple','Google','MS','Facebook'] print(list1) list1[-4:1] 输出 list1 = ['Apple','Google','MS','Facebook'] print(list1) list1[-4:1] [‘苹果’、‘谷歌’、‘微软’、‘脸谱’] [“苹果”] 有人能解释一下结果吗?当使用负索引时,从索引-1开始。说list1[-0]并让它与list1[0]不同似乎很愚蠢。因此,您
list1 = ['Apple','Google','MS','Facebook']
print(list1)
list1[-4:1]
输出
list1 = ['Apple','Google','MS','Facebook']
print(list1)
list1[-4:1]
[‘苹果’、‘谷歌’、‘微软’、‘脸谱’][“苹果”]
有人能解释一下结果吗?当使用负索引时,从索引
-1
开始。说list1[-0]
并让它与list1[0]
不同似乎很愚蠢。因此,您的代码变成了“从第四个到最后一个到第1个抓取元素”。另一种思考方式是list1[-4]
与list1[len(list1)-4]
相同。因此,您将在范围[0,1)
内执行此操作,并且只返回第一个元素。这可能会对您有所帮助
from math import sqrt
from sklearn.cluster import MiniBatchKMeans
import pandas_datareader as dr
from matplotlib import pyplot as plt
import pandas as pd
import matplotlib.cm as cm
import seaborn as sn
start = '2020-1-1'
end = '2021-1-1'
tickers = ['AXP','AAPL','BA','CAT','CSCO','CVX','XOM','GS']
prices_list = []
for ticker in tickers:
try:
prices = dr.DataReader(ticker,'yahoo',start)['Adj Close']
prices = pd.DataFrame(prices)
prices.columns = [ticker]
prices_list.append(prices)
except:
pass
prices_df = pd.concat(prices_list,axis=1)
prices_df.sort_index(inplace=True)
prices_df.head()
索引-4表示距离最后一个元素的第四位,因此
list1[-4:1]
与list1[0:1]
相同,后者与[list1[0]]
相同,后者是[`Apple`]
(再举一个例子,list1[1:-1]
=list1[1:3]
=[list1[1],list1[2]]
=[`Google`,`MS`]
)