列表理解中的“股票代号”

时间:2018-07-03 16:51:31

标签: python

我试图理解代码的这一部分,其中“ ticker”用于列表推导。谁能告诉我“ ticker”的含义以及它的来源。我将包括导入的模块/库以供参考。

import itertools
import pandas as pd
import pickle
import os.path
import xlrd
import xlwings as xw
from tkinter import *
from tkinter.filedialog import askopenfilename
import re 
import datetime
    .
    .
    .
colC = ['' if x is None else x for x in colC]
colC = [ticker.replace(' USD', '').replace(' SWAP', '').replace(' CVR', 
'').replace('.USD', '') for ticker in colC]
colC = [ticker.split()[0] + " Options" if p.match(ticker) else ticker for 
ticker in colC]

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

ticker引用列表colC中的每个项目。这些表达式称为“列表推导”。谷歌那个。基本上,它是紧凑语法的for循环

[ ...some expr... for ticker in colC]
  \           /   \                /
   inside loop     --- for loop ---

没有测试数据会有点困难,但是第一行:

colC = ['' if x is None else x for x in colC]

将在colC中将所有出现的None替换为''(空str)。

第二行将在colC中将任何出现的' USD', ' SWAP', ' CVR', '.USD'替换为''(空str)。

第三行看起来将采用代码(colC项目)中的第一个单词,如果代码与正则表达式' Options'相匹配,则添加字符串p。如果没有,它将返回股票行情。对于colC中的所有项目。

答案 1 :(得分:0)

colC = [ticker.replace(' USD', '').replace(' SWAP', '').replace(' CVR', 
'   ').replace('.USD', '') for ticker in colC] 

此行可以这样展开

for ticker in colC:
     result = ticker.replace(' USD', '').replace(' SWAP', '').replace(' CVR', 
     '   ').replace('.USD', '')
     colC.append(result)

此for循环用于遍历列表colC中的每个元素。每次迭代时,ticker变量获取当前元素,而在下一次迭代时,获取下一个元素。
因此,股票行情只是用于遍历列表的变量。您可以使用任何名称代替股票行情。它将起作用。