如何在列表中按顺序修改和添加单词 - Python

时间:2017-03-29 11:24:37

标签: python list for-loop format

我不知道这是否可行,因为我是Python的新手,但我想创建一个具有连续顺序的列表。所以我有两个列表如下:

stock_list = ['MSFT', 'YHOO']
ret = [0, 1, 2, 3]

returns = ["ret{}".format(*ret) for ret in enumerate(ret)]

返回

['ret0', 'ret1', 'ret2', 'ret3']

从上面的return和stock_list列表中,我可以创建以下内容:

for index, ret_stock in enumerate(returns):
    returns[index] += "_MSFT"
returns

输出:

['ret0_MSFT', 'ret1_MSFT', 'ret2_MSFT', 'ret3_MSFT']

理想情况下,我试图获得的是使用stock_list进行代码,MSFT和YHOO:

  ['ret0_MSFT', 'ret1_MSFT', 'ret2_MSFT', 'ret3_MSFT', 
       'ret0_YHOO', 'ret1_YHOO', 'ret2_YHOO', 'ret3_YHOO']

所以,我可以使用枚举来执行上一个方法,但是如果说,而不是仅仅使用两个代码,MSFT和YHOO,那就会变得越来越耗费时间。

创建一个包含100个或更多代码的清单,并将其应用于已经显示的退货清单。

['ret0', 'ret1', 'ret2', 'ret3']

有可能吗?也许我在提出错误的问题或从错误的角度接近。

3 个答案:

答案 0 :(得分:4)

将您当前的代码放在另一个循环中。你甚至可以在理解中创建它:

>>> stock_list = ['MSFT', 'YHOO']
>>> ret = [0, 1, 2, 3]
>>> returns = ["ret{}_{}".format(r, stk) for stk in stock_list for r in ret]
>>> returns
['ret0_MSFT', 'ret1_MSFT', 'ret2_MSFT', 'ret3_MSFT', 'ret0_YHOO', 'ret1_YHOO', 'ret2_YHOO', 'ret3_YHOO']

答案 1 :(得分:0)

您没有遍历stock_list项目..只需添加另一个循环。

此代码将:

  1. for每个库存在stock_list
  2. 从1到定义的range代码(示例中为100),执行以下操作:

    2.1创建字符串sconcatenates前缀为stock名称

    2.2 append字符串sstock_list_v2

  3. obs。:您不必使用ret = [0, 1, 2, 3],只需定义range()

    <强>代码:

    stock_list = ['MSFT', 'YHOO'] 
    stock_list_v2 = []
    
    for stock in stock_list:
        for i in range(101):
            s = 'ret' + str(i) + '_' + stock
            stock_list_v2.append(s)
    

    <强>输出:

    ['ret0_MSFT', 'ret1_MSFT', 'ret2_MSFT', 'ret3_MSFT', 'ret4_MSFT', 'ret5_MSFT', 'ret6_MSFT', 'ret7_MSFT', 'ret8_MSFT', 'ret9_MSFT', 'ret10_MSFT', 'ret11_MSFT', 'ret12_MSFT', 'ret13_MSFT', 'ret14_MSFT', 'ret15_MSFT', 'ret16_MSFT', 'ret17_MSFT', 'ret18_MSFT', 'ret19_MSFT', 'ret20_MSFT', 'ret21_MSFT', 'ret22_MSFT', 'ret23_MSFT', 'ret24_MSFT', 'ret25_MSFT', 'ret26_MSFT', 'ret27_MSFT', 'ret28_MSFT', 'ret29_MSFT', 'ret30_MSFT', 'ret31_MSFT', 'ret32_MSFT', 'ret33_MSFT', 'ret34_MSFT', 'ret35_MSFT', 'ret36_MSFT', 'ret37_MSFT', 'ret38_MSFT', 'ret39_MSFT', 'ret40_MSFT', 'ret41_MSFT', 'ret42_MSFT', 'ret43_MSFT', 'ret44_MSFT', 'ret45_MSFT', 'ret46_MSFT', 'ret47_MSFT', 'ret48_MSFT', 'ret49_MSFT', 'ret50_MSFT', 'ret51_MSFT', 'ret52_MSFT', 'ret53_MSFT', 'ret54_MSFT', 'ret55_MSFT', 'ret56_MSFT', 'ret57_MSFT', 'ret58_MSFT', 'ret59_MSFT', 'ret60_MSFT', 'ret61_MSFT', 'ret62_MSFT', 'ret63_MSFT', 'ret64_MSFT', 'ret65_MSFT', 'ret66_MSFT', 'ret67_MSFT', 'ret68_MSFT', 'ret69_MSFT', 'ret70_MSFT', 'ret71_MSFT', 'ret72_MSFT', 'ret73_MSFT', 'ret74_MSFT', 'ret75_MSFT', 'ret76_MSFT', 'ret77_MSFT', 'ret78_MSFT', 'ret79_MSFT', 'ret80_MSFT', 'ret81_MSFT', 'ret82_MSFT', 'ret83_MSFT', 'ret84_MSFT', 'ret85_MSFT', 'ret86_MSFT', 'ret87_MSFT', 'ret88_MSFT', 'ret89_MSFT', 'ret90_MSFT', 'ret91_MSFT', 'ret92_MSFT', 'ret93_MSFT', 'ret94_MSFT', 'ret95_MSFT', 'ret96_MSFT', 'ret97_MSFT', 'ret98_MSFT', 'ret99_MSFT', 'ret100_MSFT', 'ret0_YHOO', 'ret1_YHOO', 'ret2_YHOO', 'ret3_YHOO', 'ret4_YHOO', 'ret5_YHOO', 'ret6_YHOO', 'ret7_YHOO', 'ret8_YHOO', 'ret9_YHOO', 'ret10_YHOO', 'ret11_YHOO', 'ret12_YHOO', 'ret13_YHOO', 'ret14_YHOO', 'ret15_YHOO', 'ret16_YHOO', 'ret17_YHOO', 'ret18_YHOO', 'ret19_YHOO', 'ret20_YHOO', 'ret21_YHOO', 'ret22_YHOO', 'ret23_YHOO', 'ret24_YHOO', 'ret25_YHOO', 'ret26_YHOO', 'ret27_YHOO', 'ret28_YHOO', 'ret29_YHOO', 'ret30_YHOO', 'ret31_YHOO', 'ret32_YHOO', 'ret33_YHOO', 'ret34_YHOO', 'ret35_YHOO', 'ret36_YHOO', 'ret37_YHOO', 'ret38_YHOO', 'ret39_YHOO', 'ret40_YHOO', 'ret41_YHOO', 'ret42_YHOO', 'ret43_YHOO', 'ret44_YHOO', 'ret45_YHOO', 'ret46_YHOO', 'ret47_YHOO', 'ret48_YHOO', 'ret49_YHOO', 'ret50_YHOO', 'ret51_YHOO', 'ret52_YHOO', 'ret53_YHOO', 'ret54_YHOO', 'ret55_YHOO', 'ret56_YHOO', 'ret57_YHOO', 'ret58_YHOO', 'ret59_YHOO', 'ret60_YHOO', 'ret61_YHOO', 'ret62_YHOO', 'ret63_YHOO', 'ret64_YHOO', 'ret65_YHOO', 'ret66_YHOO', 'ret67_YHOO', 'ret68_YHOO', 'ret69_YHOO', 'ret70_YHOO', 'ret71_YHOO', 'ret72_YHOO', 'ret73_YHOO', 'ret74_YHOO', 'ret75_YHOO', 'ret76_YHOO', 'ret77_YHOO', 'ret78_YHOO', 'ret79_YHOO', 'ret80_YHOO', 'ret81_YHOO', 'ret82_YHOO', 'ret83_YHOO', 'ret84_YHOO', 'ret85_YHOO', 'ret86_YHOO', 'ret87_YHOO', 'ret88_YHOO', 'ret89_YHOO', 'ret90_YHOO', 'ret91_YHOO', 'ret92_YHOO', 'ret93_YHOO', 'ret94_YHOO', 'ret95_YHOO', 'ret96_YHOO', 'ret97_YHOO', 'ret98_YHOO', 'ret99_YHOO', 'ret100_YHOO']
    

    p.s。:如果您在list comprehension中转换此循环,您将获得时间。

    stock_list_v2 = ['ret' + str(i) + '_' + stock for i in range(101) for stock in stock_list]
    

答案 2 :(得分:0)

如果我做对了,也许这种方法可行。

datetime.today()

这样,对于列表中的每个库存,您将创建一个包含所需订单的新分隔列表。