社区所有版块导航
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
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  iz_  »  全部回复
回复总数  5
7 年前
回复了 iz_ 创建的主题 » python:我如何反转字符串的前两个字符?

拆分时不包括结尾,因此请执行以下操作:

>>> word = 'abc'
>>> word[1::-1]
'ba'

把中间的空着可以解决你的问题。

7 年前
回复了 iz_ 创建的主题 » python-如何检查/发现列表有引用?

你可以使用 id 功能:

>>> a = [[0] * 4] * 4
>>> a
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> [id(sublist) for sublist in a]
[1975671202696, 1975671202696, 1975671202696, 1975671202696]
>>> b = [[0 for i in range(4)] for i in range(4)]
>>> b
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> [id(sublist) for sublist in b]
[1975671204808, 1975671205128, 1975671205000, 1975671204872]

正如你所看到的 a ,ID都是相同的,而在 b ,它们是不同的。

7 年前
回复了 iz_ 创建的主题 » 在依赖于前面元素的python中创建列表

我会尽量避免所有助手函数,特别是因为它们使用 global (如果必须使用,这不是一个好迹象!).

from random import randint

INNER_LIST_SIZE = 5
OUTER_LIST_SIZE = 3
THRESHOLD = 5

li = [[*seq, sum(x for x in seq[1:] if x > THRESHOLD)] for seq in ([idx, *(randint(1, 10) for _ in range(INNER_LIST_SIZE - 2))] for idx in range(OUTER_LIST_SIZE))]

带评论的美化:

li = [
    # append the sum at the end
    [*seq, sum(x for x in seq[1:] if x > THRESHOLD)]
    # iterate through a generator that generates sequences of [index] + [random ints]
    for seq in (
        # list with [index, randint1, randint2, randint3, ...]
        [idx, *(randint(1, 10) for _ in range(INNER_LIST_SIZE - 2))]
        for idx in range(OUTER_LIST_SIZE)
    )
]
7 年前
回复了 iz_ 创建的主题 » python:为什么复制b=list(a)的列表后id会改变?

list 创建参数的新副本。它期望一个iterable,并将iterable的所有元素消耗到 新的 名单。

如果您需要引用同一列表的其他引用/名称,只需使用赋值而不调用 列表 .

a = [1,2,3]
b = a
print(id(b) == id(a))  # True
6 年前
回复了 iz_ 创建的主题 » 如何从Python类中的实例变量中获取所有值的列表

如果你有这个:

class HTTP_HEADER:
    ACCEPT = "X-Accept"
    DECLINE = "X-Decline"

names = ["ACCEPT", "DECLINE"]

获取价值只是一个简单的问题

values = [getattr(HTTP_HEADER, name) for name in names]

不过,我认为字典更合适,只需对原始代码进行最小的更改即可:

members = {
        k: v for k, v in vars(HTTP_HEADER).items()
        if not callable(v)
        and not k.startswith("__")
    }

哪个给了

{'ACCEPT': 'X-Accept', 'DECLINE': 'X-Decline'}