【问题标题】:Converting LIST in python to a desired output将python中的LIST转换为所需的输出
【发布时间】:2018-07-20 12:34:23
【问题描述】:

我是 python 的新手。我正在从 CSV 文件中导入数据,我们使用 COMMA 作为小数点分隔符。一旦我使用 python 打印输出,我就会得到这种格式。

X = ['6,34', '5,67', '7,64', '54,3', '4,20', '7,25']

我怎样才能得到带有括号的以下输出?

X = [('6,34',), ('5,67',), ('7,64',), ('54,3',), ('4,20 ',), ('7,25',)]

有人可以帮我吗?由于逗号分隔符十进制值,我无法取得成功。如果它是一个 DOT 分隔符,那将非常容易。谢谢

【问题讨论】:

  • 贴出你写的代码。
  • 将字符串通过tuple() 拆分字符。
  • [(i, ) for i in X] 但我确定这不是您真正想要的。
  • @alluri 为什么使用逗号或点作为分隔符会影响您在此处实现的目标?
  • 因为我有一段代码可以通过导入法国的语言环境库将预期的输出转换为 SEQUENCE OF TUPLES tuple(tuple(locale.atof(e.replace(',', '.')) for e in t) for t in X) ** 到达这个输出 **X = ((6.34,), (5.67,), (7.64,), (54.3,), (4.20,) , (7.25,)) 最后用 DOT 作为小数分隔符。所以我可以在 ABAQUS 软件中导出这些数据。谢谢

标签: python list csv tuples comma


【解决方案1】:

要创建元组,请执行以下操作

a = (1,3)

但是,对于单个元素,您必须将逗号放在末尾以使其成为元组。因此,您执行以下操作

a = (1,)

您正在尝试类似的事情。因此,您可以通过如下循环来执行以下操作

temp = []
for each in X:
    tuple_ = (each,)
    temp.append(tuple_)
print(temp)

我们可以使用列表推导在一行中完成上述操作,如下所示

X = ['6,34', '5,67', '7,64', '54,3', '4,20', '7,25']
Y= [(i,) for i in X]

【讨论】:

  • 好多了...并赞成:-)(稍后将删除)
【解决方案2】:
>>> X = ['6,34', '5,67', '7,64', '54,3', '4,20', '7,25']
>>> list(map(lambda x: (x,), X))
[('6,34',), ('5,67',), ('7,64',), ('54,3',), ('4,20',), ('7,25',)]

【讨论】:

    猜你喜欢
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多