如何将单词和数字存储为 str 的列表的值转换为 int 以供进一步处理
How to turn values of a list where words and numbers are stored as str into int for further processing
我有以下列表:
属性列在第一行,虚拟变量检查某种糖果类型是否适合这个条件。最后一列每行显示某种糖果类型的“成功值”
我读到使用 map 函数将是“执行此特定任务的最优雅、pythonic 和推荐的方法。”
因此尝试将地图功能应用于我的列表(此处存储为 'data'),如下所示:
data_int=list(map(int, data)) print(data_int)
但是,我收到错误代码
"ValueError: 以 10 为底的 int() 无效文字:'Whoppers'"
第一行。
(“Whoppers”是 table 最后一行的第一个元素)
任何人都可以解释我的错误以及如何解决这个问题吗?
有点不清楚您要做什么。您能否添加 data
包含的示例?
产生错误是因为您试图将 data
中的每个元素都转换为 int。这包括糖果的名称,无法转换为数值,导致出现错误消息。
如果您在解释器中 运行 int("Whopper")
,您将收到此错误消息。
如果 data
的形式为:["Whopper", "0", "0", "1", "0", "1"]
那么 运行ning list(map(int,data[1:]))
会给你我认为你正在寻找的结果,因为运算符 [1:]
排除列表的第一个元素(在你的例子中,糖果的名称)。
以下内容在 python 中完全可以接受:
- 将整数的字符串表示形式传递给 int
- 将 float 的字符串表示形式传递给 float
- 将整数的字符串表示形式传递给浮点数
- 将 float 传递给 int
- 将整数传递给浮点数
您收到一个 ValueError,因为您将 float 的字符串表示形式传递给 int。如果您仍想将 float 的字符串表示形式传递给 int,您可以先转换为 float,然后再转换为整数
int(float('11.000000'))
我有以下列表:
属性列在第一行,虚拟变量检查某种糖果类型是否适合这个条件。最后一列每行显示某种糖果类型的“成功值”
我读到使用 map 函数将是“执行此特定任务的最优雅、pythonic 和推荐的方法。”
因此尝试将地图功能应用于我的列表(此处存储为 'data'),如下所示:
data_int=list(map(int, data)) print(data_int)
但是,我收到错误代码
"ValueError: 以 10 为底的 int() 无效文字:'Whoppers'"
第一行。 (“Whoppers”是 table 最后一行的第一个元素)
任何人都可以解释我的错误以及如何解决这个问题吗?
有点不清楚您要做什么。您能否添加 data
包含的示例?
产生错误是因为您试图将 data
中的每个元素都转换为 int。这包括糖果的名称,无法转换为数值,导致出现错误消息。
如果您在解释器中 运行 int("Whopper")
,您将收到此错误消息。
如果 data
的形式为:["Whopper", "0", "0", "1", "0", "1"]
那么 运行ning list(map(int,data[1:]))
会给你我认为你正在寻找的结果,因为运算符 [1:]
排除列表的第一个元素(在你的例子中,糖果的名称)。
以下内容在 python 中完全可以接受:
- 将整数的字符串表示形式传递给 int
- 将 float 的字符串表示形式传递给 float
- 将整数的字符串表示形式传递给浮点数
- 将 float 传递给 int
- 将整数传递给浮点数
您收到一个 ValueError,因为您将 float 的字符串表示形式传递给 int。如果您仍想将 float 的字符串表示形式传递给 int,您可以先转换为 float,然后再转换为整数
int(float('11.000000'))