簡體   English   中英

如何將pi的數字拆分為一個列表

[英]how to split the digits of pi into a list

我正在matplotlib圖上繪制pi的數字,但是要執行此操作,我必須將數字拆分為單個整數。 我正在為此使用math.pi,還有其他方法可以使它變得更容易嗎?

我認為.split()僅適用於字符串,但是我可能錯了。

您是正確的,字符串具有.split()方法,而雙精度則沒有。

我認為您正在考慮將數字作為字符串。 數字實際上並沒有單獨的數字,除了在某些基礎上的文本表示形式之外。 因此,您可以將數字轉換為字符串,然后從那里開始。

例如。

text = "%.20f" % math.pi
digits = [int(s) for s in text if s != "."]
print(digits)

您想將每個數字拆分成一個列表嗎? 如果是這樣,我會將其轉換為字符串(因為數字本身被視為數字,而不是構成數字的數字),然后通過創建一個排除小數點的列表來刪除小數點。

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而不是僅對. 字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM