Python 如何将圆周率的数字拆分为一个列表
我正在matplotlib图上绘制pi的数字,但是为了做到这一点,我必须将数字拆分为单个整数。我用math.pi来做这个,有没有其他方法可以让它更简单Python 如何将圆周率的数字拆分为一个列表,python,python-2.7,Python,Python 2.7,我正在matplotlib图上绘制pi的数字,但是为了做到这一点,我必须将数字拆分为单个整数。我用math.pi来做这个,有没有其他方法可以让它更简单 我认为.split()只对字符串有效,但我可能错了。您是正确的,字符串有一个。split()方法,而double没有 不过,我想你是把这个数字看作一个字符串。数字实际上并没有独立的数字,除了它们在某些基础上的文本表示。因此,您可以将数字转换为字符串,然后从那里开始 例如 字符串有.split()方法,而double没有,这是正确的 不过,我想你是
我认为.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)。替换('.','')
,这也是一种有效的方法。有人否决了它-我可以问一下我的答案有什么不好吗?这样我下次就能提高了。