【问题标题】:Python: why is string not appending to every element in the list?Python:为什么字符串没有附加到列表中的每个元素?
【发布时间】:2015-05-06 01:04:36
【问题描述】:
files = "a.txtb.txt"

if files.find( ".txt" ) != -1:
    files = files.split( ".txt" )
    files.remove( "" )
    [ file + ".txt" for file in files ]
    print( files )

我是 python 新手。我想要的输出是 list files = [a.txt, b.txt] 最后,但出于测试原因,我必须先在前面做所有这些事情。我不明白为什么不能将字符串附加到列表中的所有元素。

【问题讨论】:

  • 为什么不把split() 放在', ' 上?
  • “无法附加”是指“被附加但由于结果未重新分配给files而被丢弃”?
  • 或者更好的是,re.split 可以拆分为多个字符。
  • 理想的解决方案是避免将所有文件名混合到一个没有分隔符的字符串中,否则您最终不得不解决problem Y
  • 最快的代码是不需要运行的代码。

标签: python string list append output


【解决方案1】:

您需要将列表分配回files。就目前而言,它只是将带有附加值的列表扔掉。

例如

files = [ file + ".txt" for file in files ]

【讨论】:

    【解决方案2】:

    使用非贪心正则表达式查找包含的文本文件:

    files = re.findall(r'\w+?\.txt', file_string)
    

    【讨论】:

      【解决方案3】:

      您可以执行以下操作以获得所需的结果:

      files = "a.txt, b.txt"
      results = files.split( ',' )
      

      在此之后,results 将以列表的形式包含所需的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-05
        • 1970-01-01
        • 2019-05-07
        • 1970-01-01
        • 2018-09-03
        • 2023-03-12
        • 1970-01-01
        • 2021-06-04
        相关资源
        最近更新 更多