В хороший день, оказывается, что у меня есть этот код в php
$array = ["a" => 1, "b" => 2, "c" => 3];
$slice = array_slice($array, 1, 2, False);
И я хочу переписать это в python, но не нахожу никакой альтернативы в документации python. Функция PHP то, что он делает, состоит в том, чтобы получать двух Keys и ищет их в array, как
list[1:2]
в python, но в словарях закончись KeyError
Две вещи: У
array_slice
PHP нет той же самой semГЎntica, что slices python, так как в Г©stos Гєltimos они nГєmeros между квадратными скобками это Г-ndice начала, и Г-ndice конца mГЎs один. Взамен в PHP они parГЎmetros - Г-ndice начала и nГєmero tГ©rminos, чтобы извлекать.
Эта mГЎs тяжело. В PHP кажется, что arrays тип "словарь" у них есть порядок intrГ-nseco, так как ты можешь иметь в виду концепции как "первый элемент словаря", "второй элемент", и т.д. В Пайтоне, даже он приносит пользу мало, у словарей нет внутреннего порядка. Нет способа говорить cuГЎl - первый элемент словаря (результат не детерминист) и следовательно не возможно извлекать slice основанные на Г-ndices.
В ней versiГіn 3.7 словари sГ - tenГ-an порядок: порядок inserciГіn. А именно, порядок, в котором уходят aГ±adiendo элементы в словарь. Тем не менее, этот порядок был "побочным эффектом" формы, в которой они были осуществлены, и documentaciГіn он это рекомендовал не писать cГіdigo, что он зависел от этого порядка, так как podrГ, - чтобы меняться в будущих версиях.
В ней versiГіn 3.8 у словарей уже есть порядок "официально". Все версии начиная с 3.8 respetarГЎn это начало, а следовательно уже возможно писать cГіdigo, что зависел от этой ordenaciГіn. Равно как в 3.7, порядок - inserciГіn.
, Сказанный все предыдущее Вїpodemos состязаться ее funciГіn array_slice
из PHP? Так как sГ, - мы можем писать одну funciГіn, что возвратил элементы словаря начинаясь в i-Г©simo. Но имей в виду, что cuГЎl - элемент i-Г©simo, он не детерминист если только estГ©s используя Пайтон 3.7 или начальник.
Вещь serГ - в asГ-:
diccionario.items()
. Каждый элемент этого списка - равный ключ - стоимость. def dict_slice(d, inicio, longitud):
lista = list(d.items())[inicio:inicio+longitud]
return dict(lista)
И пример использования:
>>> ejemplo = {"a": 1, "b": 2, "c": 3}
>>> dict_slice(ejemplo, 1, 2)
{'b': 2, 'c': 3}