繁体   English   中英

如何将 float 转换为 int 并与字符串连接?

[英]How to convert float to int and concatenate with a string?

我有很多年, por 年份目前是浮点数,包括像 1942.0 这样的小数。 我想删除小数位并添加“-12-31”,以便我有一个包含看起来像“1942-12-31”的条目的数组。 我在下面编写了循环,但是当我运行它时,小数点仍然存在,并且数组的前几个实例保持不变。 我哪里错了?

por=CMStations.por
for i in por:
    int(i)
    por.loc[i]=str(i)+"-12-31"

小数点仍然存在,因为您没有将int(i)分配给任何东西。 尝试

por=CMStations.por
for i in por:
    por.loc[i]=str(int(i))+"-12-31"

假设 por 是 Python 中的列表(我不认为数组在 Python 中更常见,但它们相似),以下代码有效。 您需要将 int(i) 分配给一个新值,例如 i 本身以将其替换为 int。 否则,不会有效地对 i 进行任何更改。 此外,您不能直接更改列表,因此我创建了一个新列表并将其分配回旧列表。

    new_por = list()
    for i in por:
        i = int(i)
        i = str(i) + "-12-31"
        new_por.append(i)
    por = new_por

这取决于变量por的类型。 如果它是一个浮点数组,则只能将其更改为另一个float而不是string 为此,为新值(字符串)创建一个列表,如下所示:

import numpy as np
por = np.array([1942.0,1943.1,1944.2])
por_string = []
for i in por:
    por_string.append(str(int(i))+"-12-31")

output 是:

['1942-12-31', '1943-12-31', '1944-12-31']

你可以用这个 go :

por=[2021.0,2022.0,2023.0,2024.0,2025.0]
por_new=[]
for item in por:
    if item!=int:
        por_new.append(str(int(item))+"-12-31")
print(por_new)

OUTPUT

['2021-12-31', '2022-12-31', '2023-12-31', '2024-12-31', '2025-12-31']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM