当前位置: 首页 > 知识库问答 >
问题:

使用for循环将字符串追加到列表中,在该列表中追加的每个项都是一个新字符串

居和顺
2023-03-14

我正在尝试创建一个新的创建列表,其中通过for循环的每次迭代将一个新项附加到列表中。到目前为止,代码如下所示:

path_start = 'https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin'
file = ".csv"

start = datetime.datetime.strptime("10-02-2007", "%d-%m-%Y")
end = datetime.datetime.strptime("21-02-2019", "%d-%m-%Y")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)]

date_list = []

for date in date_generated:
    date_string = date.strftime("%d%m%Y")
    for path_name in date_string:
        x = path_start + date_string + file
        date_list.append(x)

print(date_list)

当我这样做时,会创建一个列表,但列表中的每个项目都是相同的。我希望每个项目都使用在上一个for循环中创建的date_字符串变量,该变量在每次迭代中都应该更改。这是它创建的列表的一个示例:

['https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin10022007.csv', 'https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin10022007.csv'

我尝试过改变循环的缩进,但这并没有解决问题。

我也试图提高使用Numpy数组的效率,但这个问题的答案(如何声明和添加项到Python数组?)表示使用列表。由于清单特别长,任何有助于提高效率的帮助也将受到赞赏。

干杯,桑迪

共有2个答案

程沛
2023-03-14

您只需更改for循环,如下所示:

date_list = []
for date in date_generated:
    date_list.append(path_start + date.strftime("%Y%m%d") + file)

print(date_list)

输出示例:

[...'https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin20190124.csv',... 'https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin20190219.csv'...]

注意:第二个循环不是必需的,因为您不需要在日期字符串上循环,您需要将日期添加到字符串名称

祁辰阳
2023-03-14

你的问题在于:

for path_name in date_string:

此时,date\u字符串是一个字符串值。循环中未使用的path\u name变量正在字符串中逐字符迭代。

这意味着每个条目将有8个值(ddmmyyyy=8个字符)。如果查看结果列表中的每八个条目,您可能会看到更改。

我认为你根本不需要内环。试试这个:

for date in date_generated:
    date_string = date.strftime("%d%m%Y")
    x = path_start + date_string + file
    date_list.append(x)
 类似资料:
  • 我有一个两个项目的列表,每个项目是一个文本字符串。我想围绕这两个项目循环,如果一个单词不在一组单词中,则基本上删除它。但是,下面的代码将所有单词放在一起,而不是创建两个单独的项。我希望我的更新列表包含两个项目,每个原始项目对应一个im更新:

  • 问题内容: 我正在尝试采用一个字符串,并将其附加到列表中包含的每个字符串中,然后使用完成的字符串创建一个新列表。例: 我尝试了循环,并尝试了列表理解,但这是垃圾。一如既往的任何帮助,不胜感激。 问题答案: 最简单的方法是使用列表理解: 请注意,我避免使用内置名称,因为那样会掩盖或隐藏内置名称,这非常不好。 另外,如果您实际上不需要列表,而只需要一个迭代器,则生成器表达式可能会更高效(尽管在短列表中

  • 问题内容: 我正在编写一个包含10个存储桶列表的简单哈希表。使用内置函数计算索引,然后对表大小取模。但是,当我尝试将对象附加到该索引的存储桶列表时,它会附加到每个存储桶列表。我尝试用不同的方式定义add_HT,但我一直得到相同的结果。我究竟做错了什么? 问题答案: 使指向 同一列表 的指针数量增加。这里不是问题。您需要定义为。

  • 问题内容: 我是一名基本的python程序员,因此希望我的问题的答案会很容易。我正在尝试拿字典并将其附加到列表中。然后,字典更改值,然后再次循环添加。似乎每次执行此操作时,列表中的所有词典都会更改其值以匹配刚刚添加的值。例如: 我认为结果是,但是我得到了: 任何帮助是极大的赞赏。 问题答案: 您需要追加一个 副本 ,否则您将一遍又一遍地添加对同一词典的引用: 我用和代替和; 您不想掩盖内置类型。

  • 我有一个for循环,它遍历CSV中的每一行,我创建了一个包含列表的字典,但是列表被重写了,因为字典键被重复了几次。我如何总结或追加到列表中的第二(1)位置相同的键的下一个值下一个循环迭代? 因为使用append时,如果再次找到现有键,则会覆盖该值,因此该键的值会被一次又一次地覆盖。 CSV中的字段包括: 输出应该是这样的:

  • 问题内容: 在每篇文章中,“如何向JEditorPane附加字符串?”问题的答案。就像 我已经试过了: 结果,我得到了“终止时间:1000”,而没有“进程的分布:” 为什么会发生这种情况??? 问题答案: 我怀疑这是附加文本的推荐方法。这意味着每次更改某些文本时,都需要重新解析整个文档。人们之所以这样做,是因为他们不了解如何使用JEditorPane。包括我在内。 我更喜欢使用JTextPane然