【问题标题】:Converting a list of integers to strings using map()使用 map() 将整数列表转换为字符串
【发布时间】:2015-04-30 21:45:57
【问题描述】:

我不明白为什么 python 不允许我使用 map() 函数将整数列表更改为字符串列表。当我尝试在 python shell 中执行此操作时,它工作正常,但当我在脚本中尝试时,我真的很困惑为什么会发生这种情况。这是我的脚本代码:

def DashInsert(str):

    list_int = map(int, list(str))
    list_str = map(str, list_int)

    return list_str 

我也知道,如果列表已经以字符串形式出现,我不需要将其更改回字符串,但我很好奇为什么 Python 在将列表转换为整数列表后不允许我更改它.我不断收到“str object is not callable”错误。

【问题讨论】:

    标签: python dictionary type-conversion


    【解决方案1】:

    当你这样做时:

    def DashInsert(str):
    

    您在 DashInsert 的范围内隐藏了 str 内置函数,因此当您尝试使用 list_str = map(str, list_int) 时,它不会按预期工作,因为 str 不再是 Python 的内置函数,它等于您作为 str 传递给函数的对象。考虑重命名,例如:

    def DashInsert(text):
        list_int = map(int, list(text))
        list_str = map(str, list_int)
        return list_str
    

    【讨论】:

    • 成功了,谢谢!您能否更详细地解释一下阴影概念?
    • @RidwanKazi Python 在分配方面相当灵活。所以你可以做int = float,然后做int(3),你会得到float(3)...一般的经验法则是避免将自己的变量命名为与Python的内置函数相同...
    • 感谢乔恩,这很有道理。
    猜你喜欢
    • 1970-01-01
    • 2015-01-14
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多