【问题标题】:Working with '"variable"' structure in Python在 Python 中使用“变量”结构
【发布时间】:2020-11-29 11:41:35
【问题描述】:

因此,在将 CSV 文件读入 python 时,一些变量具有以下结构: '“多变的”' 我将它们存储在列出的元组中。 现在,其中一些变量必须相互比较,因为它们是数字的。 但我似乎无法找到一种方法来比较它们。例如:

counter = 0
if '"120000"' < '"130000"':
        counter += 1

但是,计数器仍为 0。 关于如何使用这些类型的数据结构有什么建议吗? 我尝试将它们转换为整数,但这给了我一个 ValueError。

原始文件的布局如下:

Date,"string","string","string","string","integer"

我读取文件如下:

with open(dataset, mode="r") as flight_information:
    flight_information_header = flight_information.readline()
    flight_information = flight_information.read()
    flight_information = flight_information.splitlines()
    flight_information_list = []
    for lines in flight_information:
        lines = lines.split(",")
        flight_information_tuple = tuple(lines)
        flight_information_list.append(flight_information_tuple)

【问题讨论】:

  • 您能否提供更多上下文 - 您如何从 CSV 中读取数据,它是什么样的,这些数值是如何被引用的?您可以在转换为整数之前去掉引号,但在上游修复它可能会更好。
  • 发布我的代码作为答案
  • 不是答案,请将其编辑到问题中。为什么要引用整数开头?
  • CSV 文件的构建,无法更改任何内容。
  • 那么您是否尝试将引号去掉?有很多方法可以做到这一点,参见例如stackoverflow.com/questions/40950791/….

标签: python-3.x list data-structures tuples


【解决方案1】:

对于未来的人,以下解决了我的问题: 由于元组是不可变的,我现在在加载 csv 文件时删除了数值周围的“”:

例子:

with open(dataset, mode="r") as flight_information:
    flight_information_header = flight_information.readline()
    flight_information = flight_information.read()
    flight_information = flight_information.splitlines()
    flight_information_list = []
    for lines in flight_information:
        lines = lines.replace('"', '').split(",")
        flight_information_tuple = tuple(lines)
        flight_information_list.append(flight_information_tuple)

特别注意这一行:

lines = lines.replace('"', '').split(",")

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 2018-09-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多