【问题标题】:Python3.4 : Matching and returning list valuesPython3.4:匹配和返回列表值
【发布时间】:2015-05-26 12:36:44
【问题描述】:

我在 Python 中打开了一个包含数千行的文本文件。我需要搜索每一行以查看它是否包含许多不同指定值中的 1 个。然后我需要返回特定值和包含该值的相应行。

q1 = open('/home/lost/StockRec/StockIndex/edgar.full-index.2015.QTR1.master.idx', 'r')

list = ['1341234', '12341234', '4563456', '12341234', '6896786', '2727638']

for line in q1:
    for listValue in list:
        if listValue in line:
            print(listValue, line)

我知道这段代码是错误的。我需要在 q1 中的每一行中搜索列表中的每个特定值。然后我需要打印特定的列表值和包含该值的行。

【问题讨论】:

  • “返回”是什么意思?这段代码看起来不像是在函数内部,所以使用return 只会导致错误。
  • 对不起...不是最好的使用术语,编辑打印:-)
  • “我知道这段代码是错误的。” - 为什么?它有什么问题?
  • 它没有返回列表中的特定值和包含该值的行...它返回所有 listValues 和所有行

标签: list loops python-3.x


【解决方案1】:

除非您的文件已经以某种方式分隔成行,否则您在导入文件时似乎必须先将文件拆分成行。现在它正在返回所有这些,因为 q1 只有一行。

在文件中查找一些识别信息,例如换行符 ('\n') 或每行是否以特定字符开头。 因此,一旦您打开文件,您将包括:

q1.split('your identifying character here')

这将分割你的文件副本,然后你可以执行你已经编写的循环

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多