相关疑难解决方法(0)

Python:从列表中获取前10个结果

有没有办法可以从列表中获取前10个结果.这样的事情可能是:

list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

list.fetch(10)
Run Code Online (Sandbox Code Playgroud)

python

122
推荐指数
4
解决办法
23万
查看次数

如何在列表中获取生成器的n个下一个值(python)

我已经制作了一个生成器来逐字读取文件,它运行良好.

def word_reader(file):
    for line in open(file):
        for p in line.split():
            yield p

reader = word_reader('txtfile')
next(reader)
Run Code Online (Sandbox Code Playgroud)

在列表中获取n个下一个值的最简单方法是什么?

python list generator

41
推荐指数
2
解决办法
1万
查看次数

Python中的简单Prime生成器

请问有人请告诉我这段代码我做错了什么?无论如何,它只是打印'计数'.我只想要一个非常简单的素数发生器(没什么特别的).

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0: 
                continue
            if count % x != 0:
                print count

        count += 1
Run Code Online (Sandbox Code Playgroud)

python primes

33
推荐指数
7
解决办法
11万
查看次数

将 Haskell 代码转换为 Python 或伪代码

我正在研究一种算法。但是作者提供的haskell代码我不是很清楚,所以我需要你们的帮助。我认为代码可以分为两部分。

> type LFT = (Integer, Integer, Integer, Integer)
>
> extr :: LFT -> Integer -> Rational
> extr (q,r,s,t) x = ((fromInteger q) * x + (fromInteger r)) / ((fromInteger s) * x + (fromInteger t))
>
> unit :: LFT
> unit = (1,0,0,1)
>
> comp :: LFT -> LFT -> LFT
> comp (q,r,s,t) (u,v,w,x) = (q*u+r*w,q*v+r*x,s*u+t*w,s*v+t*x)
Run Code Online (Sandbox Code Playgroud)

这里,很明显,一个叫做LFT的类型(可能是Python中的元组)和三个叫做的函数extr unit comp被定义了。 然而,接下来的部分让我很困惑:

> pi = stream next safe prod cons init lfts …
Run Code Online (Sandbox Code Playgroud)

python haskell

6
推荐指数
1
解决办法
1372
查看次数

在嵌套列表python中查找字符串及其索引的所有出现

我有一个以下格式的嵌套列表:

[['john'],['jack','john','mary'],['howard','john'],['jude']...]
Run Code Online (Sandbox Code Playgroud)

我想找到嵌套列表中出现的前 3 或 5 个 john 索引(因为列表真的很长)并返回索引,例如: (0,0),(1,1),(2,1) 或采用任何建议的格式。

我对嵌套列表相当陌生。任何帮助将非常感激。

python nested-lists

2
推荐指数
1
解决办法
1383
查看次数

获取列表的前 N ​​项,如果列表较短,则可以

打印列表/生成器的前 N ​​个项目

这适用于普通列表。它打印列表的前 3 项

l=[1, 2, 3, 4]
print(l[:min(3, len(l))])
Run Code Online (Sandbox Code Playgroud)

我也希望这项工作适用于少于三个项目的列表。如果列表中只有一项,则打印一项。

AFAIK len(l) 仅适用于列表。如何为生成器实现这个?

python

1
推荐指数
1
解决办法
1万
查看次数

打破生成器循环的优雅方法:GeneratorExit 错误

我有一个在生成器上循环的代码。如果第二次迭代到达它,我必须打破该循环。为此,我使用,它在调用该方法时break引发 a 。GeneratorExitGenerator.close()

for page in limit_handled(tweepy.Cursor(..., ..., ...):
    while len(the_list) < 400:
        for status in page:

            def process_status(tweet):
                ...
                ...

            the_list.append(process_status(status))

    break
Run Code Online (Sandbox Code Playgroud)

是否有一种更优雅的方法可以避免此类错误?

Exception ignored in: <generator object limit_handled at 0x000000003AB300A0>
RuntimeError: generator ignored GeneratorExit
Run Code Online (Sandbox Code Playgroud)

我已经看到了这两个问题的答案:如何获取第一个 N... 如何获取下一个 n...但这不是同一个问题。就我而言,Generator使用Cursor. 因此,在每次迭代时它都会处理一个查询。我想在达到至少 400 个状态后停止查询,这可能在第二次或第三次迭代之后发生(查询通常返回 200 行,但也可以更少)。此处不能选择对生成器进行切片。避免处理所有查询(总共 16 个,大约 16*200=3200 个状态)正是我想通过在返回 400 个状态后破坏代码来避免的。

编辑:为了更好地理解,这里是我的生成器的代码:

def limit_handled(cursor):
    global user_timeline_remaining
    while True:
        if user_timeline_remaining>1:
            try:
                yield cursor.next()
            except BaseException as e:
                print('failed_on_CURSOR_NEXT', str(e))
        else: …
Run Code Online (Sandbox Code Playgroud)

python generator break python-3.x

1
推荐指数
1
解决办法
1778
查看次数

如何在列表中打印最多 n 个元素

我想在列表中打印最多 50 个元素

即如果列表中有 100 个元素,我只需要前 50 个。我目前的上述代码是

'Filter':switcheroo.get(zaxis,["None Selected"])[zaxis].unique().tolist()[:50]
Run Code Online (Sandbox Code Playgroud)

如果列表中有 25 个元素,我只需要 25 个。使用上述代码时出现错误。从其他帖子中我了解到以下代码是解决方案,但我无法理解如何使用我当前的代码实现它。

[x for _, x in zip(range(n), records)]
Run Code Online (Sandbox Code Playgroud)

如何从 Python 中的生成器或列表中获取前 N 个项目?

python

-3
推荐指数
1
解决办法
6252
查看次数

标签 统计

python ×8

generator ×2

break ×1

haskell ×1

list ×1

nested-lists ×1

primes ×1

python-3.x ×1