Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/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
Python 如何将圆周率的数字拆分为一个列表_Python_Python 2.7 - Fatal编程技术网

Python 如何将圆周率的数字拆分为一个列表

Python 如何将圆周率的数字拆分为一个列表,python,python-2.7,Python,Python 2.7,我正在matplotlib图上绘制pi的数字,但是为了做到这一点,我必须将数字拆分为单个整数。我用math.pi来做这个,有没有其他方法可以让它更简单 我认为.split()只对字符串有效,但我可能错了。您是正确的,字符串有一个。split()方法,而double没有 不过,我想你是把这个数字看作一个字符串。数字实际上并没有独立的数字,除了它们在某些基础上的文本表示。因此,您可以将数字转换为字符串,然后从那里开始 例如 字符串有.split()方法,而double没有,这是正确的 不过,我想你是

我正在matplotlib图上绘制pi的数字,但是为了做到这一点,我必须将数字拆分为单个整数。我用math.pi来做这个,有没有其他方法可以让它更简单


我认为.split()只对字符串有效,但我可能错了。

您是正确的,字符串有一个
。split()
方法,而double没有

不过,我想你是把这个数字看作一个字符串。数字实际上并没有独立的数字,除了它们在某些基础上的文本表示。因此,您可以将数字转换为字符串,然后从那里开始

例如


字符串有
.split()
方法,而double没有,这是正确的

不过,我想你是把这个数字看作一个字符串。数字实际上并没有独立的数字,除了它们在某些基础上的文本表示。因此,您可以将数字转换为字符串,然后从那里开始

例如


是否要将每个数字拆分为一个列表?如果是这样,我会将其转换为字符串(因为数字被视为数字本身,而不是构成数字的数字),然后通过创建一个排除小数点的列表来删除小数点

import math

listOfDigits = [item for item in str(math.pi) if item != "."]

是否要将每个数字拆分为一个列表?如果是这样,我会将其转换为字符串(因为数字被视为数字本身,而不是构成数字的数字),然后通过创建一个排除小数点的列表来删除小数点

import math

listOfDigits = [item for item in str(math.pi) if item != "."]

可以使用生成器执行此操作:

def split_number(number):
    number_as_string = str(number)
    for character in number_as_string:
        if not character.isdigit():
            continue
        yield int(character)

import math
print(list(split_number(math.pi)))
# [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9]
或者,如果您更喜欢单衬里:

list(int(character) for character in str(math.pi) if character.isdigit())
# or
[int(character) for character in str(math.pi) if character.isdigit()]

我认为这些答案更可取,因为使用了
isdigit
而不是仅使用
字符的特殊大小写。

您可以使用生成器执行此操作:

def split_number(number):
    number_as_string = str(number)
    for character in number_as_string:
        if not character.isdigit():
            continue
        yield int(character)

import math
print(list(split_number(math.pi)))
# [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9]
或者,如果您更喜欢单衬里:

list(int(character) for character in str(math.pi) if character.isdigit())
# or
[int(character) for character in str(math.pi) if character.isdigit()]

我认为这些答案更可取,因为使用了
isdigit
而不是只使用
字符的特殊大小写。

你是什么意思?你有一个浮点数,想把数字分成一个列表?将3.1415变成[3,1,4,1,5]
math.pi
不会给出很多数字。这里有一个函数,可以返回任意数量的数字,在一个字符串中:精确复制您的意思是如何将数字拆分为单个整数?您有一个浮点数,希望将数字拆分为一个列表?将3.1415转换为[3,1,4,1,5]
math。pi
不会给您许多数字。这里有一个函数,它可以返回任意多个数字,以字符串的形式:完全重复
list()
str()
是ITerable还是
list(str(math.pi)。替换('.','')
,这也是一种有效的方法。有人投了反对票-请问我的答案有什么不好的地方吗?所以我下次可以改进。松开
list()
str()
是ITerable还是
list(str(math.pi)。替换('.','')
,这也是一种有效的方法。有人否决了它-我可以问一下我的答案有什么不好吗?这样我下次就能提高了。