首页 > 解决方案 > 如何将从 text() 小部件获得的字符串转换为 int 数据类型列表?

问题描述

所以我正在尝试创建一个小型 GUI 应用程序,它可以从 text() 小部件示例中获取用户的数据:112,21,33,49,5 或 12 21 33 49 5 并根据用户选择。但我现在陷入了这个问题。

问题是我的逻辑适用于像 9、8、3、5、2、6 这样的单值数据,但是当我给出像 99、22、44、11 这样的数据时,它完全是垃圾。它计算每个单独的项目,然后执行其余的操作。请帮我解释一下逻辑。

这是从小部件获取数据并转换为 int 并将 int 数据附加到另一个空白列表 b[] 的代码。

 b = []
    a12 = entry_01.get("1.0", "end-1c")
    for k in a12:
        if k != ",":
            c = int(k)
            b.append(c)

在添加所有数据后列表 b[] 准备就绪后,我然后应用搜索或排序算法。SI 只需要这部分代码的帮助。

标签: pythontkinterlogic

解决方案


如果它们总是用逗号分隔,那么简单的事情就可以了:

b = list(map(int, a12.split(",")))

如果它们可以是空格或逗号,则使用简单的正则表达式字符串就足够了:

b = list(map(int, re.split("[\s,]+", a12.strip()))

推荐阅读