Python 从很长的字符串中获取特定的数字

Python 从很长的字符串中获取特定的数字,python,python-3.x,Python,Python 3.x,我如何编写一个python程序,通过python在txt文件中查找所有连续的100万位pi数 例如,如果我想找到所有六位数的连续数字,我可以运行程序,输出可能会显示 [123456'、[234567'…]是存在的 如果我想找到所有三位数的连续数字,输出可能会显示 ['123'、'234'…]是存在的 def funn: l=[] 对于rangelennums中的我: 子集=nums[i:i+n] 如果子集==分拣子集: l、 附加子集 返回l 你可以试试这个: >>> a =

我如何编写一个python程序,通过python在txt文件中查找所有连续的100万位pi数

例如,如果我想找到所有六位数的连续数字,我可以运行程序,输出可能会显示 [123456'、[234567'…]是存在的

如果我想找到所有三位数的连续数字,输出可能会显示 ['123'、'234'…]是存在的

def funn: l=[] 对于rangelennums中的我: 子集=nums[i:i+n] 如果子集==分拣子集: l、 附加子集 返回l 你可以试试这个:

>>> a = '12345564564'
>>> def get_nums( nums, length ) :
...     for i in range(len(nums)) :
...         selection = nums[i:i+length]
...         if len(selection) < length : break
...         yield selection

>>> for n in get_nums( a, 6 ) : print n
... 
123455
234556
345564
455645
556456
564564

谢谢你的建议。我已经解决了这个问题

我的方法是首先使用两个for循环来创建一个连续的数字列表,例如[0123456]、[1234567]、[2343456]、[9012345]

然后我在长pi中检查“是否”上面的任何列表项,并将现有列表项附加到空列表中,最后打印它


谢谢

请加一个更详细的例子来解释你的意思。添加一些代码来显示您到目前为止所做的尝试也可能会有所帮助,即使这只是一个粗略的尝试/想法。我在python中打开了一个包含百万位数的txt文件,现在它是一个包含百万位数的字符串。我想找到这个字符串中的所有七位连续数字。@goxywood那么,这个文本是有一个百万位数的字符串,还是它们之间有任何分隔符,比如空格?你能显示这个文本文件的快照吗?@a\r我已经删除了所有的空间。它现在是python中的“3.141592653589793238462643383279502884197169399375105820……”百万位数。现在它是一个字符串,您不应该立即尝试构建整个列表,它太大,可能会溢出内存,并且需要花费大量时间来构建。当确实需要元素时,尝试逐个返回它们。
def fun(n, piList):
l = []
for i in range(len(piList)):
    subset = piList[i:i+n]
    sortedSubset = sorted(subset)
    firstOfSubset = sortedSubset[0]
    targetSubset = list(range(firstOfSubset,firstOfSubset+n))
    if subset == targetSubset:
        l.append(subset)
    if len(piList) - (i + n) ==0:
        break

return l