Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的Str';s映射与求和_Python_String - Fatal编程技术网

Python中的Str';s映射与求和

Python中的Str';s映射与求和,python,string,Python,String,为什么需要在以下代码中使用函数“str”? 我试图计算一个数字中的数字之和 我的代码 for i in number: sum(map(int, str(i)) 其中number是以下数组 [7,79,9] 我读我的代码如下 循环遍历数组,以便 计算整数位数的和 通过映射获取数字中的给定数字 这样,每个对象(给定的数字)都将转换为字符串//这没有意义 手册上说这是str Type:Type 基类: 字符串形式: 名称空间:Python内置 文档字符串: str(object)->st

为什么需要在以下代码中使用函数“str”?

我试图计算一个数字中的数字之和

我的代码

for i in number:
    sum(map(int, str(i))
其中number是以下数组

[7,79,9]
我读我的代码如下

  • 循环遍历数组,以便
  • 计算整数位数的和
  • 通过映射获取数字中的给定数字
  • 这样,每个对象(给定的数字)都将转换为字符串//这没有意义
  • 手册上说这是str

    Type:Type
    基类:
    字符串形式:
    名称空间:Python内置
    文档字符串:
    str(object)->string
    返回对象的良好字符串表示形式。
    如果参数是字符串,则返回值是相同的对象。
    
    如果不使用
    str()
    尝试该代码,会发生什么


    str()
    用于将整数转换为字符序列,以便
    map()
    可以在序列上迭代。这里的关键点是,可以将“字符串”视为“字符序列”。

    如果不使用
    str()
    尝试该代码,会发生什么


    str()
    用于将整数转换为字符序列,以便
    map()
    可以在序列上迭代。这里的关键点是,一个“字符串”可以被视为一个“字符序列”。

    给定
    79
    您需要获得
    [7,9]
    ,以总结此列表

    把一个数字分成几位数是什么意思?它的意思是用一些基数来表示数字系统中的数字(在这种情况下,基数
    10
    )。例如<代码>79是
    7*10**1+9*10**0

    那么,得到这样一个数字表示的最简单的方法是什么(至少在本文中是这样的)?将其转换为小数字符串

    您的代码正是这样做的:

    >>> str(79)
    '79'
    
    # Another way to say this is [int(c) for c in str(79)]
    >>> map(int, str(79))
    [7, 9]
    
    >>> sum(map(int, str(79)))
    16
    

    给定
    79
    您需要获得
    [7,9]
    ,以汇总此列表

    把一个数字分成几位数是什么意思?它的意思是用一些基数来表示数字系统中的数字(在这种情况下,基数
    10
    )。例如<代码>79是
    7*10**1+9*10**0

    那么,得到这样一个数字表示的最简单的方法是什么(至少在本文中是这样的)?将其转换为小数字符串

    您的代码正是这样做的:

    >>> str(79)
    '79'
    
    # Another way to say this is [int(c) for c in str(79)]
    >>> map(int, str(79))
    [7, 9]
    
    >>> sum(map(int, str(79)))
    16
    

    为什么需要在以下代码中使用函数“str”?

    因为map需要一个iterable,比如列表、元组或字符串

    该代码将upp中的所有数字相加为一个整数。它通过一个小聪明的黑客做到了这一点。它通过执行以下操作将数字转换为数字序列

    map(int, str(i))
    
    这将把整数2009转换为列表[2,0,0,9]。然后sum()将所有这些整数相加,得到11

    一个不那么粗俗的版本是:

    >>> number = [7,79,9]
    >>> for i in number:
    ...     result = 0
    ...     while i:
    ...         i, n = divmod(i, 10)
    ...         result +=n
    ...     print result
    ... 
    7
    16
    9
    

    但是你的版本确实更聪明。

    为什么你需要在下面的代码中使用函数“str”?

    因为map需要一个iterable,比如列表、元组或字符串

    该代码将upp中的所有数字相加为一个整数。它通过一个小聪明的黑客做到了这一点。它通过执行以下操作将数字转换为数字序列

    map(int, str(i))
    
    这将把整数2009转换为列表[2,0,0,9]。然后sum()将所有这些整数相加,得到11

    一个不那么粗俗的版本是:

    >>> number = [7,79,9]
    >>> for i in number:
    ...     result = 0
    ...     while i:
    ...         i, n = divmod(i, 10)
    ...         result +=n
    ...     print result
    ... 
    7
    16
    9
    

    但是你的版本确实更聪明。

    你怎么能看出
    map()
    需要字符作为输入手册中说映射(函数,序列[,序列,…])->列表序列的数据类型是什么?-似乎一个序列可能只由字母组成,而不是数字。在类型更完善的语言中,
    map
    的类型为:
    forall a。(a->b),列表(a)->列表(b)
    。Python中的Sequence(实际上这里是
    Iterable
    )是使用
    \uuuuu iter\uuuu
    方法返回另一个名为
    迭代器的东西的东西。迭代器具有与实际迭代相同的
    \uuu iter\uuu
    next
    。“似乎序列可能只由字母组成,而不是数字。”不。数字序列是完全可能的,例如(1,2,3,4,5)。而且,有必要记住数字之间的差异(整数,如数学概念)和字符(可能是字母、数字、标点符号或其他字符)。您如何看到
    map()
    需要字符作为输入?——手册中说映射(函数、序列[、序列,…])->list.-序列的数据类型是什么?-序列似乎可能只包含字母,而不是数字。在类型更为完善的语言中,
    map
    的类型为:
    对于所有的a.(a->b),list(a)->list(b)
    。sequence(实际上,
    Iterable
    )在Python中,使用
    \uuuuuuuuuuuuuuuuuuuu
    方法返回另一个名为
    迭代器的东西。迭代器具有与实际迭代相同的
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
    下一个
    。“序列似乎可能只包含字母,而不是数字。”不。数字序列是完全可能的,比如(1,2,3,4,5)。而且,有必要记住数字(整数,如数学概念)和字符(可能是字母、数字、标点符号或其他字符)之间的差异。我发现“字符串”是Python中不可变的字符序列,因此您首先需要一个新字符串来进行编辑。-但是,在您的示例中,当79是一个新输入时,您为什么需要使用
    str
    进行编辑。-我想知道在给定的示例中,您何时不需要使用函数
    str
    。您的意思是转换to十进制数字允许计算总和?-它