社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

a_guest

a_guest 最近创建的主题
a_guest 最近回复了
5 年前
回复了 a_guest 创建的主题 » 迭代列表中的每两个元素以执行列表python的某些操作

您可以创建一个迭代器,然后自行压缩它:

def pairwise(iterable):
    return zip(*[iter(iterable)]*2)

def pairwise(iterable):
    i = iter(iterable)
    return zip(i, i)
6 年前
回复了 a_guest 创建的主题 » python:类内的字典理解[复制]

因为最外层的迭代器是在周围的作用域中计算的,所以我们可以使用 zip 一起 itertools.repeat 将依赖关系转移到理解的范围:

import itertools as it

class Foo:
    x = 5
    y = [j for i, j in zip(range(3), it.repeat(x))]

也可以使用嵌套 for 在理解中循环,并在最外层iterable中包含依赖项:

class Foo:
    x = 5
    y = [j for j in (x,) for i in range(3)]

对于op的具体示例:

from collections import namedtuple
import itertools as it

class StateDatabase:
    State = namedtuple('State', ['name', 'capital'])
    db = [State(*args) for State, args in zip(it.repeat(State), [
        ['Alabama', 'Montgomery'],
        ['Alaska', 'Juneau'],
        # ...
    ])]
7 年前
回复了 a_guest 创建的主题 » 如何在不删除python中元素索引的情况下删除元素

你可以用 collections.Counter :

>>> from collections import Counter
>>> sorted(Counter(numbers).items(), key=lambda x: x[1], reverse=True)[:3]
[(3, 4), (5, 3), (2, 3)]
  ^  ^
  |  |
number
     |
   count

这将返回数字及其计数。如果您想要百分比,那么您可以稍后进行转换。