Форум сайта python.su
Привет!
Встрял с решением)
Есть список из n - элементов например требуется получить на выходе списки следующего вида
Формируем списки по условия вхождения элемента если следующий элемент в ряде повторяется то добавляется в список если нет то создается новый список
/////Есть код на PHP аналогичный
$input_array = array(0, 0, 1, 1, 1, 0);
$result = ;
$index = 0;
$processedElement = null;
foreach ($input_array as $currentElement) {
if ($processedElement != $currentElement) {
$index++;
}
$result = $currentElement;
$processedElement = $currentElement;
}
print_r($result);
//////////
В моем варинте уходит за границы массива
input_array = ;
result = *len(input_array)
index = 0;
prev = None;
for val in input_array:
if prev != val:
index += 1
result.append()
prev = val
print(result)
Отредактировано HardDancer (Июль 13, 2022 23:36:59)
Офлайн
Выложи и свой PHP'шный код и свой питоновский код в тегах кода
[code]
Здесь пиши PHP'шный код
[/code]
[code]
Здесь пиши питоновский код
[/code]
Офлайн
$input_array = array(45,21,45,45,21);
$result = ;
$index = 0;
$processedElement = null;
foreach ($input_array as $currentElement) {
if ($processedElement != $currentElement) {
$index++;
}
$result = $currentElement;
$processedElement = $currentElement;
}
print_r($result);
input_array =[45,21,45,45,21] ;
result = []*len(input_array)
index = 0;
prev = None;
for val in input_array:
if prev != val:
index += 1
result[index].append([val])
prev = val
print(result)
Офлайн
не совсем понятно условие что дожно быть в результате?
Офлайн
HardDancer, код ты правильно передал, но сам код неправильный. Вставь код оттуда, где он у тебя хранится в компьютере. Прямо из файлов в компьютере копируй на форум.
Вот ты записал, например
HardDancerЭто ничего не значит, у тебя в файле там что-то другое записано.$result = ;
Офлайн
lst = [1, 2, 2, 3, 4, 4, 5] repeating_items = [] single_items = [] temp_dict = {} for i in lst: temp_dict.setdefault(i, 0) temp_dict[i] += 1 for k, v in temp_dict.items(): if v == 1: single_items.append([k]) else: repeating_items.append(k) print(repeating_items) print(single_items)
Офлайн
$input_array = array('45', '21', '45', '45', '45', '29', '35', '35', '21');
$result = [];
$index = 0;
$processedElement = null;
foreach ($input_array as $currentElement) {
if ($processedElement != $currentElement) {
$index++;
}
$result[$index][] = $currentElement;
$processedElement = $currentElement;
}
print_r($result);
Офлайн
Исходный пример на PHP
<?php
$input_array = array('45', '21', '45', '45', '45', '29', '35', '35', '21');
$result = [];
$index = 0;
$processedElement = null;
foreach ($input_array as $currentElement) {
if ($processedElement != $currentElement) {
$index++;
}
$result[$index][] = $currentElement;
$processedElement = $currentElement;
}
print_r($result);
?>
[guest@localhost php]$ php t.php
Array
(
[1] => Array
(
[0] => 45
)
[2] => Array
(
[0] => 21
)
[3] => Array
(
[0] => 45
[1] => 45
[2] => 45
)
[4] => Array
(
[0] => 29
)
[5] => Array
(
[0] => 35
[1] => 35
)
[6] => Array
(
[0] => 21
)
)
[guest@localhost php]$
#!/usr/bin/env python3 lst = [45, 21, 45, 45, 45, 29, 35, 35, 21] out = [] prev = None for cur in lst: if cur != prev: out.append([cur]) else: out[-1].append(cur) prev = cur print(out)
[guest@localhost php]$ python3 t.py
[[45], [21], [45, 45, 45], [29], [35, 35], [21]]
[guest@localhost php]$
Офлайн
Супер, спс до этого никак не мог дойти: out.append(cur)
Офлайн