Вопросы с тегами [itertools]

1

голосов
2

ответ
36

Просмотры

how to sum the values in a list for a key in string datatype while having hyphen as one of value

У меня есть словарь по имени временных dict_items ([( '/ история / Аполло /', [ '6245', '6245', '6245', '6245', '6245', '6245', '6245', ' 6245 ']), (' / трансфер / отсчет /», [ '3985', '3985', '3985', '3985', '3985', '3985', '3985', '-', '-' , '-', '0', '3985', '4247', '3985', '3985', '3998', '0', '3985', '3985', '3985', '3985', ' 4247' , '3985', '3985', '398, '3985']), (' /», [ '7074', '7074', '7074', '7074', '7074', '7074', '7074', '7074', '7074', '7074', '70]), ( '/images/dual-pad.gif',[ '141308', '141308', '0', '141308', '141308', '141308', '0', '141308', '0', '141308', '141308']), ( '/ изображения / NASA-logosmall.gif», [ '0', '786', '786', '0', '786', '786', '786', '786', '786', '786', '786', '786', '786', '786', '786', '0', '786', '786', '786'])]) ее в основном URL-адрес и пропускной способности acossiated с конкретным URL я нужна сумма всех значений в списке, которые находятся в строке для определенного ключа, игнорируя при этом дефис, который является одним из значения для ключа требуемого выхода: dict_items ([( «/ история / аполлон /», [ «4996»], ( '/', [ '70810']), ( '/ изображения / двойная колодка.GIF», [ '113040']), ( '/images/NASA-logosmall.gif', [ '12576'])]) #Or полное значение для ключа без строки #dict_items ([(/ история / аполлон /, [4996], (/, [70810]) (/ изображения / двойной pad.gif, [113040]), (/images/NASA-logosmall.gif, [12576])]) мой код сумма = {к: сумма (я для я в Ú, если isinstance (я, целое)) для к, v в temp.items ()} это дает мне TypeError ошибки: неподдерживаемый тип операнда (ов) для +: «Int» и «ул», то я пытались суммы = {к: сумма (интермедиат (я) для я в ст) для K, V в [temp.values ​​()]} затем я попробовал печати ({к: сумма (карта (Int, [v])) для к, v в temp.items ()}) Ошибка при получении техника его подводит работы: TypeError: ожидается строка или байт-подобный объект будет признателен за любую помощь])]) #Or полное значение для ключа без строки #dict_items ([(/ история / аполлон /, [4996], (/, [70810]) (/ изображений / двойного pad.gif, [113040]), (/images/NASA-logosmall.gif, [12576])]) мой код сумма = {к: сумма (я для I в V, если isinstance (я, целый)) для к, v в temp.items ()} это дает мне TypeError ошибки: неподдерживаемый тип (ы) операнда для +: 'Int', а затем я попытался суммы = {к 'ул': сумма (интермедиат (я) для I в V) для K, V в [temp.values ()]} затем я попробовал распечатать ({к: сумма (карта (интермедиат, [v])) для к, v в temp.items ()}) Ошибка при получении техника его подводит работы: TypeError: ожидается строка или байт-подобный объект будет признателен за любую помощь])]) #Or полное значение для ключа без строки #dict_items ([(/ история / аполлон /, [4996], (/, [70810]) (/ изображений / двойного pad.gif, [113040]), (/images/NASA-logosmall.gif, [12576])]) мой код сумма = {к: сумма (я для I в V, если isinstance (я, целый)) для к, v в temp.items ()} это дает мне TypeError ошибки: неподдерживаемый тип (ы) операнда для +: 'Int', а затем я попытался суммы = {к 'ул': сумма (интермедиат (я) для I в V) для K, V в [temp.values ()]} затем я попробовал распечатать ({к: сумма (карта (интермедиат, [v])) для к, v в temp.items ()}) Ошибка при получении техника его подводит работы: TypeError: ожидается строка или байт-подобный объект будет признателен за любую помощьэлементы ()} это дает мне TypeError ошибки: неподдерживаемый тип операнда (ов) для +: 'Int' и 'ул', то я попытался суммы = {к: сумма (интермедиат (я) для I в V) для к, v в [temp.values ​​()]} затем я попробовал распечатать ({к: сумма (карта (интермедиат, [v])) для к, v в temp.items ()}) Didnt получаю ошибку работы: TypeError: ожидается строка или байтов -как объект будет признателен за любую помощьэлементы ()} это дает мне TypeError ошибки: неподдерживаемый тип операнда (ов) для +: 'Int' и 'ул', то я попытался суммы = {к: сумма (интермедиат (я) для I в V) для к, v в [temp.values ​​()]} затем я попробовал распечатать ({к: сумма (карта (интермедиат, [v])) для к, v в temp.items ()}) Didnt получаю ошибку работы: TypeError: ожидается строка или байтов -как объект будет признателен за любую помощь
Hansel Jade
1

голосов
0

ответ
70

Просмотры

How can I create groups that have similar totals using pandas, numpy, or itertools?

What is the best way to create n groups of n size that have a similar total file size given a DataFrame with a column for files and file sizes? While searching, this problem sounded similar to the knapsack problem, except there are no hard stops. Any solution that is quick and produces groups of any length that are close to average (be it under or over) would be a great improvement. My first attempt (t1) creates groups by counting in a circular order. Next attempt (t2), sorts the DataFrame by size in hopes of preventing one group from getting a clump of large files, but the approach is basically the same as t1. There are usually ~300 files total. In this context, I was not sure if it is practical to calculate all possible combinations or if there is a better approach. from itertools import repeat, chain from math import ceil import pandas as pd source_dict = {'file_name_': {0: 'file_0', 1: 'file_1', 2: 'file_2', 3: 'file_3', 4: 'file_4', 5: 'file_5', 6: 'file_6', 7: 'file_7', 8: 'file_8', 9: 'file_9' , 10: 'file_10', 11: 'file_11', 12: 'file_12', 13: 'file_13', 14: 'file_14', 15: 'file_15', 16: 'file_16', 17: 'file_17', 18: 'file_18' , 19: 'file_19', 20: 'file_20', 21: 'file_21', 22: 'file_22', 23: 'file_23', 24: 'file_24', 25: 'file_25', 26: 'file_26', 27: 'file_27' , 28: 'file_28', 29: 'file_29', 30: 'file_30', 31: 'file_31', 32: 'file_32', 33: 'file_33', 34: 'file_34', 35: 'file_35', 36: 'file_36' , 37: 'file_37', 38: 'file_38', 39: 'file_39', 40: 'file_40', 41: 'file_41', 42: 'file_42', 44: 'file_44', 45: 'file_45', 46: 'file_46' , 47: 'file_47', 48: 'file_48', 49: 'file_49', 50: 'file_50'} , 'file_size': {0: 3407245, 1: 3973920, 2: 7408640, 3: 4086426, 4: 12795600, 5: 2155039, 6: 9514856, 7: 13190235, 8: 32043703, 9: 4936240, 10: 9591964 , 11: 70153435, 12: 5106282, 13: 212414, 14: 24998146, 15: 11605646, 16: 2427516, 17: 23634036, 18: 169983, 19: 7011305, 20: 2106828 , 21: 3420304, 22: 11254, 23: 1271220, 24: 1164562, 25: 83613105, 26: 1030701, 27: 366948, 28: 7014895, 29: 8274642, 30: 2731629 , 31: 1596299, 32: 524, 33: 302, 34: 42332100, 35: 5441036, 36: 40633457, 37: 34680208, 38: 123505, 39: 15905009, 40: 52071678 , 41: 10624966, 42: 15425993, 44: 27673986, 45: 144988223, 46: 62619919, 47: 21562386, 48: 10620299, 49: 254661, 50: 232406680}} sampleSizesDF = pd.DataFrame(source_dict) desired_groups = 4 # multiprocessing.cpu_count() group_size = ceil(sampleSizesDF.file_name_.count() / desired_groups) max_length = sampleSizesDF.file_name_.count() # upper bound for list # trial 1, count off and group my_groups = list(chain(*repeat(list(range(0,desired_groups)), group_size)))[:max_length] sampleSizesDF['pGroup_t1'] = my_groups # trial 2, sort + trial 1 sampleSizesDF.sort_values('file_size', inplace = True) sampleSizesDF['pGroup_t2'] = my_groups pGroupDistDF = pd.concat([ sampleSizesDF.groupby('pGroup_t1').agg({'file_size': 'sum'}) , sampleSizesDF.groupby('pGroup_t2').agg({'file_size': 'sum'}) ] , axis=1) pGroupDistDF.columns = ['t1', 't2'] pGroupDistDF = pGroupDistDF.merge(pd.DataFrame(pGroupDistDF.values, columns=['t1_dist', 't2_dist']).apply(lambda x: x/x.sum()), left_index=True, right_index=True) presentation_order = ['t1', 't1_dist', 't2', 't2_dist'] pGroupDistDF[presentation_order] t1 t1_dist t2 t2_dist 0 304015174 0.281916 291719748 0.270514 1 470551775 0.436347 396619142 0.367788 2 134901157 0.125095 183490246 0.170152 3 168921844 0.156643 206560814 0.191546
emican
1

голосов
2

ответ
104

Просмотры

Как многопроцессном в цикле

импорт строка импорта hashlib импорта itertools hash_list = [hash1, hash2, hash3 ...] allchar = string.ascii_letters + string.digits + string.punctuation Защиту треснуть (MSG): температура = hashlib.md5 (msg.encode ( 'UTF -8)) hexdigest () для hash_list в значение хэша:., если темп == значение хэш: печать (MSG) hash_list.remove (), если значение хэш __name__ == '__main__': п = 1, тогда как Len (hash_list)> 0: для результата в itertools.product (allchar, повторить = п): сообщ = '' .join (результат) трещина (сбщ) п + = 1 Я написал эту программу для взлома хэшей. Как я могу использовать многопроцессорной в этой программе? Я пытался сохранить все произведение itertool в списке для отображения, но этот список становится слишком большим. Есть ли память эффективный способ многопроцессорных эту программу? Огромное спасибо!!!
Yufeng Li
1

голосов
1

ответ
49

Просмотры

Generate all combinations of 2 lists (game playing)

Я пытаюсь создать все возможные комбинации между 2 списков А и Б в питона с несколькими ограничениями. А и В чередуются в выборе значений, А всегда выбирает первое. А и В могут иметь перекрывающиеся значения. Если А уже выбрал значение, то B не может забрать его, и наоборот. Оба списка не обязательно должны быть одинаковой длины. Если список не имеет доступных значений, чтобы выбрать то я не создавать комбинации Кроме того, элементы определена каждым должны быть в порядке возрастания, т.е. А [1] <А [2] <.... А [п] и В [1] <в [2] <.... в [п], где а [I] и в [I] является I-й элемент выбраны а и в соответственно Пример: а = [1, 2, 3, 4] Б = [2, 5] Решение мне нужно (1), (2), (3), (4), (1,2), (1,5), (2,5), (3,2), (3,5), (4,2), (4,5), (1,2,3), (1,2,4), (3,2,4), (1,5,2), (1,5,3), (1,5,4), (2,5,3), (2,5,4), (3,5,4), (1,2,3,5), (1,2,4,5), (3,2,4,5) (1,2,3,5, 4) Я считаю, что itertools в питона может быть полезным для этого, но я действительно нету понял, как реализовать его для этого случая. В настоящее время, это, как я ее решение: А = [1, 2, 3, 4] В = [2, 5] = A_set множества (А) = B_set множество (б) #Append оба множества C = A. объединение (в) для L в диапазоне (LEN (С), 0, -1): для подмножества в itertools.combinations (C, L): # Проверяем, если подмножество удовлетворяет ограничениям и распечатать его, если он делает
Jack
1

голосов
0

ответ
26

Просмотры

карта нитей с itertools

Например, я с таким кодом импортом itertools из multiprocessing.dummy импорта Бассейна, как Threadpool #combinations от itertools, что делает комбинации из 3-х элементов массива четкости build_func (I): печать (I) операторы = [1,2,3,4 , 5] размер = 3 = бассейн ThreadPool (5) pool.map (build_func, itertools.combinations (операторы, размер)) pool.close () pool.join () Я хочу, чтобы нити из результатов генератора, но это очень медленно и не работает правильно. Если я просто использовать для ввода в itertools.combinations (операторы, размер): build_func (я) Он работает быстрее, так что нити используются неправильно. Есть ли способ сделать нити ПОЛЕЗНЫЕ?
1

голосов
5

ответ
136

Просмотры

Python: Связывание списков вместе

Предположим, у меня есть список, где каждый индекс или имя, или список номеров предыдущего индекса имя зарезервированных. [[ "Боб"], [ "125A "154B", "643A"], [" 142C " "19"], [ "653G"], [ "Carol"], [ "95H", 123C"] , [ «Давид»], [ «120G»]] Таким образом, в этом случае, Боб имеет номер: 125A, 154B, 643A, 152С, 19, и 653G зарезервирован и т.д. Как построить функцию, которая сделала бы выше в следующем формате: [[ "Боб", "125A "154B", "643A", "142C", "192В", "653G"], [" Carol»... по сути конкатенации [имя] со всеми [список номера оговорок], до следующего экземпляра [имя]. у меня есть функция, которая принимает список и возвращает истину, если список является именем, и ложная, если это список бронирование номеров, так что фактически у меня есть: [True, False, False, значение False, True, False, True False] для приведенного выше списка, но не уверен, как это помогло бы мне, если вообще. Предположим, что если список содержит имена, он имеет только одно имя.
zhuyxn
1

голосов
1

ответ
926

Просмотры

Есть ли эквивалент питоны итераторных инструментов для Node.js?

Я пытаюсь порта некоторый код, который использует итераторы инструменты Python для узла, однако я не вижу аналогов там. Я специально искал замену itertools.combination () Я видел это одно, но это неполное и из даты: узел-intertools
MrMowgli
1

голосов
1

ответ
163

Просмотры

Дразнящий itertools.zip_longest

Я написал код, с эффектом четкости get_stuff (вход): для а, Ь в itertools.zip_longest (вход, вход): # сделать некоторый выход обработки, б, которая в настоящее время называется get_stuff (sys.stdin), но в будущем может измениться на get_stuff (some_file_I_opened). Причина я использую zip_longest это кусок читающая в пар (т.е. прочитать две строки одновременно). Я хотел бы, чтобы дразнить вход в моем тестировании, но я не могу показаться, чтобы получить макет, чтобы хорошо играть с itertools.zip_longest. Мой насмешливый код прямо сейчас: Защиту test_get_rover_information_happy_case (Я):. Self.input = sys.stdin self.input = MagicMock () self.input .__ ИТЭР __ return_value = [ "5 5 N", "LRMR"] а, Ь = get_stuff (self.input) что происходит с этим насмешливым код, который get_stuff вызывается дважды. Первый раз» ы называется и б оба имеют значение «5 5 N», и второй раз, когда они оба имеют значение LRMR. Как я могу издеваться ввод таким образом, что два значения считываются в то время?
Paymahn Moghadasian
1

голосов
1

ответ
835

Просмотры

Как избежать ошибок памяти при сохранении всех комбинаций в списке

Я генерация всех комбинаций из набора цифр, а затем хочу создавать комбинации этих комбинаций. Из-за огромного количества возможных комбинаций я получаю ошибку памяти. Я посмотрел на следующие вопросы, но ни один из них действительно решить мою проблему: Создание всех комбинаций набора и кончаются itertools.combinations Python памяти () проблемы с памятью ошибки Python список памяти Я генерирующего мой список, используя следующий метод: #generate все комбинации 1 и 0 размер 30 set_1 = itertools.product ([0,1], повторить = 30) #generate все комбинации множества 1, размером 5 set_2 = [кортеж (с) для с в pulp.allcombinations ( set_1, 5)] для множеств в set_2: печать (наборы) Их ошибка памяти происходит во время его формирования set_2. Я хотел бы еще иметь возможность перебрать set_2 как мне нужно будет получить доступ множества позже.
user35510
1

голосов
2

ответ
1.4k

Просмотры

Python itertools длина комбинации

Оценил любой входной сигнал об этой практике проблемы: Дана строка длины п и целого числа к, печать все возможные комбинации длины к (печати NCK) при ограничении, что 1 а, б, в аЬс, 3 -> ABC
Macaroni
1

голосов
1

ответ
1.1k

Просмотры

Nested GROUP BY in django: returning Objects

Я пытаюсь использовать классическую GROUP_BY базы данных на моем QuerySet в Django. Я уже видел, как запрашивать, как GROUP BY в Джанго? но различие: что мне нужно, чтобы получить dictionnary объектов, а не значения (на самом деле не тип вещи, возвращаемой величины ()). что мне нужно, чтобы получить вложенный словарь (т.е. мне нужно GROUP_BY на GROUP_BY). Моя модель: класс CitiesTable (models.Model): страна = models.TextField () region_or_state = models.TextField () город = models.TextField () Я хочу, чтобы классифицировать по стране, а затем, среди них, по region_or_state, где внутри есть еще список города: Я хочу, чтобы получить { «США»: { «Калифорния»: [ «Сан-Франциско», «Лос-Анджелес», ...], «Техас»: [ «Даллас», «Хьюстон», .. .}, 'Германия': { 'Бавария': [ 'Мюнхен', «Нюрнберг», ...}} Но здесь, как уже отмечалось ранее, города внутри списка должны быть объекты. Я не нашел, как получить его в Django так, используя itertools в Python, я уже удался на внешнюю GROUP_BY: (помогая мне с этим: Как преобразовать кортеж в нескольких вложенного словарь в Python?): От itertools импорт GroupBy Защиту show_cities (запрос): QuerySet = CitiesTable.objects.all () grouped_cities = [] unique_countries = [] для к, г в GroupBy (QuerySet, лямбда-х: x.country): grouped_cities.append (список (г) ) unique_countries.append (к) возвращение визуализации (запрос, «городов / show_cities.html», { «города»: grouped_cities, «страна»: unique_countries}) Но мне не удалось сгруппировать все города объекты в их region_or_state. }} Но здесь, как уже отмечалось ранее, города внутри списка должны быть объекты. Я не нашел, как получить его в Django так, используя itertools в Python, я уже удался на внешнюю GROUP_BY: (помогая мне с этим: Как преобразовать кортеж в нескольких вложенного словарь в Python?): От itertools импорт GroupBy Защиту show_cities (запрос): QuerySet = CitiesTable.objects.all () grouped_cities = [] unique_countries = [] для к, г в GroupBy (QuerySet, лямбда-х: x.country): grouped_cities.append (список (г) ) unique_countries.append (к) возвращение визуализации (запрос, «городов / show_cities.html», { «города»: grouped_cities, «страна»: unique_countries}) Но мне не удалось сгруппировать все города объекты в их region_or_state. }} Но здесь, как уже отмечалось ранее, города внутри списка должны быть объекты. Я не нашел, как получить его в Django так, используя itertools в Python, я уже удался на внешнюю GROUP_BY: (помогая мне с этим: Как преобразовать кортеж в нескольких вложенного словарь в Python?): От itertools импорт GroupBy Защиту show_cities (запрос): QuerySet = CitiesTable.objects.all () grouped_cities = [] unique_countries = [] для к, г в GroupBy (QuerySet, лямбда-х: x.country): grouped_cities.append (список (г) ) unique_countries.append (к) возвращение визуализации (запрос, «городов / show_cities.html», { «города»: grouped_cities, «страна»: unique_countries}) Но мне не удалось сгруппировать все города объекты в их region_or_state. города внутри списка должны быть объекты. Я не нашел, как получить его в Django так, используя itertools в Python, я уже удался на внешнюю GROUP_BY: (помогая мне с этим: Как преобразовать кортеж в нескольких вложенного словарь в Python?): От itertools импорт GroupBy Защиту show_cities (запрос): QuerySet = CitiesTable.objects.all () grouped_cities = [] unique_countries = [] для к, г в GroupBy (QuerySet, лямбда-х: x.country): grouped_cities.append (список (г) ) unique_countries.append (к) возвращение визуализации (запрос, «городов / show_cities.html», { «города»: grouped_cities, «страна»: unique_countries}) Но мне не удалось сгруппировать все города объекты в их region_or_state. города внутри списка должны быть объекты. Я не нашел, как получить его в Django так, используя itertools в Python, я уже удался на внешнюю GROUP_BY: (помогая мне с этим: Как преобразовать кортеж в нескольких вложенного словарь в Python?): От itertools импорт GroupBy Защиту show_cities (запрос): QuerySet = CitiesTable.objects.all () grouped_cities = [] unique_countries = [] для к, г в GroupBy (QuerySet, лямбда-х: x.country): grouped_cities.append (список (г) ) unique_countries.append (к) возвращение визуализации (запрос, «городов / show_cities.html», { «города»: grouped_cities, «страна»: unique_countries}) Но мне не удалось сгруппировать все города объекты в их region_or_state.
ThePhi
1

голосов
1

ответ
161

Просмотры

найти общее количество делителей числа, для т тестов в питоне

печати и далее любой из нас есть решение этой ошибки? Обратите внимание, что время для тестового случая 2 секунды и диапазона чисел составляет 10 ^ 9 и тест 100 Как я могу это сделать?
user7179690
1

голосов
1

ответ
125

Просмотры

Как сделать несколько исключить команды, используя itertools.chain в Django?

Предположим, я хочу выполнить команду исключения неоднократно получать переменные из exclude_list, например, [ «аа», «аb» «ас»]. Я могу сделать это с помощью цикла: для exclude_value в exclude_list: myQueryset.exclude (variable__startswith = exclude_value) Тем не менее, я хотел бы сделать это с помощью команды itertools.chain, как я прочитал это в состоянии сделать это. Какие-либо предложения?
Pavel Isaev
1

голосов
1

ответ
659

Просмотры

«TypeError:„INT“объект не итерация» при перемещении itertools продукта внутри функции

Я пытаюсь переместить использование itertools.product внутри функции. Когда я пытаюсь сделать это, я представил со следующим сообщением об ошибке, и я не знаю, почему: TypeError: «INT» объект не итератор код выглядит следующим образом. В основной функции, вы можете увидеть алгоритм, используемый за пределами функции, а затем вы можете увидеть алгоритм, используемый при упаковке в функции: #! / USR / бен / окр питон импорта itertools Защиты основного (): elements_specification = [[10, 20], [30, 40], [50, 60]] = [перечислены список (list_generated) для индекса, element_specification в перечисление, (elements_specification) для list_generated в itertools.product (* elements_specification [: индекс + 1])] для list_configuration в списках: печать (list_configuration) печать ( "---"
d3pd
1

голосов
1

ответ
235

Просмотры

Python itertools: декартово произведение с фильтрацией пустых строк

Я пишу сценарий для вызова программы со всеми возможными аргументами командной строки. Некоторые из этих аргументов может быть нет. Попытка # 1: args1 = [ 'program.exe'] args2 = [ '1', '5', ''] args3 = [ '--foo', ''] для арг в itertools.product (args1, args2, args3): Args = [аргумент для арг в аргументах, если аги = «»!] subprocess.call (список (арг)) есть еще один способ, чтобы получить эти перестановки без необходимости вручную отфильтровать пустые строки? Вещи сломаться, если я просто оставить его в списке аргументов. Я имею в виду, мой подход работает, но я чувствую, что будет какой-то более встроенным способом справиться с этим. Хотя чтение этого вопроса заставляет меня думать, что менее вероятно.
JETM
1

голосов
2

ответ
91

Просмотры

Как я могу создать векторное произведение кортеж для списка н списке?

Например, для [[0,1], [0,1], [0,1]] Я хочу, чтобы получить кортежи 000,001 ... 111.When I цикл по списку русских списков, он не работает с itertools .product продукт = [] для г в диапазоне (LEN (список)): продукт = itertools.product (продукт, список [я]) Как видно из вопроса, я новичок в Python. Заранее спасибо. Приветствия.
user1722022
1

голосов
1

ответ
99

Просмотры

Extract дни, часы и секунды из списка DateTimes

У меня есть очень длинный список DateTimes хронологически отсортированный (монотонно возрастает, если вы предпочитаете). Представьте себе, что-то вроде этого: финики импорта DateTime = [datetime.datetime.fromtimestamp (хй) для ого в xrange (huge_number)] разница по отношению к моему реальному списку является то, что не временный шаг всегда постоянен, и, как правило, пробела между секунд, часов или дней. То, что я хочу сделать, это сделать пользователю выбрать (с помощью графического интерфейса PyQt4) точной даты-времени, и то, что я угадал, чтобы сделать это: получить все разные дни, содержащиеся в datetimes_list за каждый день, создать список со всеми разные часы, соответствующие этим день в течение каждого часа, получить полный список моментов, соответствующих этому часу Конечно, я могу сделать это с некоторыми для /, если петли, но мне было интересно, если есть эффективный и компактный способ сделать это, возможно, с помощью itertools и GroupBy итератор.
Alb.A
1

голосов
1

ответ
92

Просмотры

с помощью языка Python «с» в то время как чтение двух файлов одновременно с izip

Я регулярно использую питон читать два или несколько файлов одновременно следующим образом: для LINE1, line2 в izip (открытый (file1), открытый (file2)): сделать что-то с LINE1 и line2 (с использованием izip из пакета itertools, поскольку файлы читаю огромны, и я не хочу, чтобы загрузить весь файл в память). Я недавно был преобразован в использовании с при чтении файлов, что является, по-видимому лучше, так как он закрывает все открытые файлы, если ваша программа падает (по крайней мере, это то, что я понял из обсуждения здесь и в других местах): с открытым (именем файла), как ФЕ : для линии в ОМ: сделать что-то с линией, однако, я не могу показаться, чтобы выяснить, как совместить эти два метода. При попытке использовать izip в этом контексте, он говорит: «itertools.izip» объект не имеет атрибута «__exit__» который я интуитивно является одной из причин, почему использование с настолько мощным. Таким образом, есть в любом случае использовать izip с с?
lstbl
1

голосов
1

ответ
36

Просмотры

Itertools.permutations через списки в строгом порядке питона

Скажем, у меня было три списка, как например: list_1 = [ 'hello1', 'мира1', 'foo1'] list_2 = [ 'hello2', 'world2', 'foo2'] list_3 = [ 'hello3', 'world3', ' foo3 '] можно ли достичь - через, например, itertools.combinations () или itertools.permutations - что только следующие комбинации возвращаются: расчески = [' hello1' , 'мира1', 'foo1'], [ 'hello1' , 'world2', foo1 '], ... [' hello1' , 'мира1', foo2 '], ... [' hello3' , 'world2', foo2' ], ... другими словами, я хочу чтобы убедиться, что перестановка уважает порядок, как она существовала в каждом из исходных списков. Я уверен, что должна быть простым способом, но я не могу найти его. Заранее спасибо!
coyjedg
1

голосов
1

ответ
53

Просмотры

itertools комбинация создает недостающую пару

как я могу обойти это ?? проблема обнаружена вокруг 7050 комбинации хеш, общее количество комбинаций составляет около 16k. заранее спасибо
holahola
1

голосов
1

ответ
59

Просмотры

Группа уникального 0th элементы CSV для уникальных Ith элементов в Python или улье

Пожалуйста, смотрите изображение на ссылку, чтобы лучше видеть входные и необходимые выходные форматы и прочитать описание ниже Я ищу взять 3 (или 2) столбец CSV и создать новый файл CSV, где для каждого уникального 1-го элемента (то есть второго столбец) все уникальные 0th элементы сгруппированы таким образом, что структура CSV строк выходных являются такой: уникальный 1-го элемента, уникальный элемент 0-й # 1, уникальный элемент # 0-й, 2 ... Использование Python 3.x или Python 2.x или куст или SQL. Очень признателен за любые предложения. Спасибо!
WhyNot
1

голосов
2

ответ
36

Просмотры

Python Итерация через списки со ступенчатым прогрессированием

Принимая во внимание следующие списки: буквы = ( 'а', 'б', 'с', 'd', 'е', 'е', 'г') числа = ( '1', '2', '3' , '4') Как можно произвести повторный список, который производит следующее: выход = [( 'A', '1'), ( 'B', '2'), ( 'с', '3'), ( 'd', '4'), ( 'е', '1'), ( 'е', '2'), ( 'г', '3'), ( 'а', '4'), ( 'B', '1'), ( 'с', '2'), ( 'd', '3'), ( 'е', '4'), ( 'F', '1'), ( «г», «2») ...] Я чувствую, что я должен быть в состоянии произвести желаемый результат, используя выходной = (список (почтовый индекс (буквы, itertools.cycle (номера)) Но это дает следующее:Выход = [( 'а', '1'), ( 'B', '2'), ( 'с', '3'), ( 'd', '4'), ( 'е', «1 '), (' е», '2'), ( 'г', '3')] Любая помощь будет высоко оценена.
Daniel
1

голосов
1

ответ
56

Просмотры

Генератор и список возвращать разные результаты

Я пытаюсь взять в генераторе, где каждый элемент представляет собой список / Кортеж / итерация, которые имеют одинаковую длину и возвращаю отдельный генератор для каждого индекса элементов. Когда я жестко закодировать индексы в split_feat2 ниже это работает, как ожидалось. Однако, когда я использую список понимание или добавить в список и вернуть его к получению неверных результатов. Я проверил мою логику и пытался возвращать список списков вместо списка генераторов путем подстановки () для [] в понимании и дали правильные результаты, так что я понятия не имею, где проблема есть. Любое понимание, почему он ведет себя так, как это было бы весьма признателен. Защиту split_feat2 (GEN): G = тройник (ген, 2) возвращение [(е [0] для е в G [0]), (е [1] при е в G [1])] Защита split_feat (ген, п ): G = тройник (ген, п) возврат [(е [п] при е в г) при п, г в перечислении, (G)] Защита split_featlist (ген, п):
Jesse Feinman
1

голосов
2

ответ
25

Просмотры

Permutation method generating results arbitrarily

Я использую перестановку функции () из модуля itertools. Я должен сравнить две строки. Строки можно считать равными тех пор, пока одна перестановка другими. Документация для itertools.permutations () говорит: itertools.permutations (итерируемый [, г]) Возвращает последовательные длины г перестановку элементов в итерации. Если г не указан или не имеется, то г по умолчанию к длине итерации и все возможные перестановки полной длины генерируются. Это мой код: импорт itertools mystr = [] для я в диапазоне (0, 2): mystr.append (вход ()) PLIST = itertools.permutations (mystr [0]) для я в PLIST: печать (I), если любой (х == mystr [1] для й в PLIST): печать ( "Да") еще: печать ( "Нет") Но генерируя PLIST занимает слишком много времени. И когда я пытаюсь напечатать элементы списка свойств, процесс в конце концов погибает, потому что она делает слишком много перестановок. Но он должен сделать только перестановки длины самой строки. Мои входы: Dcoderplatform patlodercDmfro Я ожидаю выход быть Да. Но я противоположный вывод (No). Как я могу улучшить свой алгоритм?
Ayush Goyal
1

голосов
1

ответ
59

Просмотры

Перестановка панд серии со всеми элементами в нем (itertools)

Я пытаюсь получить обратно ряд (или фрейм данных) с перестановками элементов в этом списке: stmt_stream_ticker = ( «SELECT * FROM тикер;») тикер = pd.read_sql (stmt_stream_ticker, англ), который дает мне мой тикер серии тикер 0 ALJ 1 ALDW 2 BP 3 BPT затем с помощью функции я хотел бы работать мой список: Защита permus_maker (х): глобальный я # Я попытался нелокального я, но это дает мне: несвязывающаяся ошибка permus = itertools.permutations (х, 2) permus_pairs = [] для я в permus: permus_pairs.append (я) возвращение permus_pairs.append (я) тест = permus_maker (тикер) печать (тест) Это дает мне 'None' назад. Любая идея, что я делаю не так? edit1: Я тестировал определенную пользователем функцию против встроенной функции (% timeit): он принимает 5x до тех пор.
eternity1
1

голосов
2

ответ
52

Просмотры

Dict Постижение Индекс Ошибка

Я в настоящее время строит Dict понимание от itertools GroupBy объекта, чтобы построить словарь подстановок для некоторых строк. #groupby итерируемый организованы первые 3 символов каждого элемента списка «заголовкам». поиск = GroupBy (отсортированных (Названия), ключ = itemgetter (0,1,2)) # ключ = сцепить элементы кортежа, Вэл = Список морской окунь Iterable lookdict = { '' присоединиться (я):. список (к ) для I, J в поиске} Эта вторая строка дает мне IndexError: индекс строки из диапазона. Я не могу сказать, является ли это проблемой с дж, морской окунь Iterable, или присоединиться вызов в Словаре компе. Следующее: для I, J в поиска: (. '' Присоединиться (я), к) печати, как и ожидалось, не проблематично. Необходимо иметь значение как список и ключи как строки, чтобы избежать какого-то превращения при каждом поиске. Можно ли указать, где я неправильно здесь?
cdDC
1

голосов
2

ответ
31

Просмотры

Un-ordered Combinations with limited replacements

I have to make a list of un-ordered combinations with limited repeats i.e for a given list of unique elements say card_set create all combinations of length combo_len, with an element repeating at max repeat_limit times the below code is for combo_len = 3 and repeat_limit = 2 with card_set = range(5) note i need unordered combinations. ie (0,0,1) and (0,1,0) are the same so the solution link below does not satify my conditions This post tells me how to get oredered combinations with limited repeats import itertools import pprint card_set = list(range(5)) a = sorted(set(itertools.combinations_with_replacement(card_set,3))) neg = [(i,i,i) for i in card_set] b = set(a) - set(neg) print('a###') pprint.pprint(a) print('b###') pprint.pprint(b) the above code gives me a which is unordered combinations with limited 2 repeats ie. neg contains unwanted repeats (0,0,0) (1,1,1) etc so b = set(a) - set(neg) give me the required set for combo_len = 3 and repeat_limit = 2 the above code works. How do i make a code for range(13) combo_len = 7 and repeat_limit = 4 Output: a### [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3), (0, 0, 4), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 2, 2), (0, 2, 3), (0, 2, 4), (0, 3, 3), (0, 3, 4), (0, 4, 4), (1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 1, 4), (1, 2, 2), (1, 2, 3), (1, 2, 4), (1, 3, 3), (1, 3, 4), (1, 4, 4), (2, 2, 2), (2, 2, 3), (2, 2, 4), (2, 3, 3), (2, 3, 4), (2, 4, 4), (3, 3, 3), (3, 3, 4), (3, 4, 4), (4, 4, 4)] b### {(0, 0, 1), (0, 0, 2), (0, 0, 3), (0, 0, 4), (0, 1, 1), (0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 2, 2), (0, 2, 3), (0, 2, 4), (0, 3, 3), (0, 3, 4), (0, 4, 4), (1, 1, 2), (1, 1, 3), (1, 1, 4), (1, 2, 2), (1, 2, 3), (1, 2, 4), (1, 3, 3), (1, 3, 4), (1, 4, 4), (2, 2, 3), (2, 2, 4), (2, 3, 3), (2, 3, 4), (2, 4, 4), (3, 3, 4), (3, 4, 4)}
1

голосов
1

ответ
46

Просмотры

Using itertools for a condition with enumerate to only get certain list indexes (python)

This is my code: from itertools import tee, islice, chain def previous_and_next(some_iterable): prevs, items, nexts = tee(some_iterable, 3) prevs = chain([None], prevs) nexts = chain(islice(nexts, 1, None), [None]) return zip(prevs, items, nexts) fruits = ['watermelon', 'apple', 'apple', 'banana', 'kiwi', 'peach', 'apple', 'pear', 'watermelon', 'apple', 'apple', 'orange', 'apple', 'grape'] nr_of_apples = 0 apples = [] for previous, item, nxt in previous_and_next(fruits): apple_indexes = [i for i, x in enumerate(fruits) if x == 'apple' and nxt != 'apple'] print(apple_indexes) for i in apple_indexes: index = i - 1 for previous, item, nxt in previous_and_next(fruits[index:]): if nxt != 'apple': break apples.append(nxt) nr_of_apples = len(apples) print(nr_of_apples) I'm trying to count the number of times the word 'apples' appears in the list using itertools. I'm aware that this is a complex way of doing something that could be achieved in this, much simpler, way: for f in fruits: if f == 'apple': apples.append(f) But the idea here is to expand this code for a much more complex use with Stanford CoreNLP's Named Entity Recognition. So I'm starting simple and building my way up to that. The issue is that my code is currently returning this: [1, 2, 6, 9, 10, 12] # indexes of the apples 8 # number of apples Obviously there aren't 8 apples in the list, only 6. So my question is, how can I add a condition into the enumerate function to only get the indexes of the apples that aren't following another apple? So the output should look like this: [1, 6, 9, 12] 6
la21
1

голосов
1

ответ
46

Просмотры

Уникальные комбинации из списка с «пределом расстояния»

Учитывая список а = [ «а», «б», «с», «d», «е»], я хотел бы использовать itertools.combinations, чтобы получить все уникальные комбо, как [ «AB», «ас», .. .], в соответствии с классическим SO ответ Как я могу ограничить уникальные комбинации элементов, которые не дальше, чем п пятен? Пример Если я хочу элементы списка не более п = 2 пятна прочь, я принял бы «AB» и «ас» как комбинации, но не «ае», так как расстояние между «а» и «е» больше п = 2 Правка - код Ниже простого решения Python кода, который я бы избежать за счет двойной цикл, который не является идеальным для больших списков а = [ «а», «B», «C», «D», ' е '] n_items = Len (а) n_max_look_forward = 2 unique_combos = [] для я, пункт в Перечислим (а): для J в диапазоне (г + 1,
Pythonic
1

голосов
5

ответ
76

Просмотры

Как Переберите двух генераторов одного и того же открытого файла

У меня есть средний размер файл (25 МБ, 1000000 строк), и я хочу, чтобы прочитать каждую строку, за исключением каждого третьего ряда. ПЕРВЫЙ ВОПРОС: это быстрее, чтобы загрузить весь файл в память, а затем прочитать строки (метод .read ()), или загрузить и прочитать одну строку в то время (метод .readline ())? Поскольку я не опытный кодер я попробовал второй вариант с методом Ислице из модуля itertools. импорт intertools с открытой (входной_файл) как INP: inp_atomtype = itertools.islice (вх, 0, 40, 3) inp_atomdata = itertools.islice (вх, 1, 40, 3) для atomtype, atomdata в itertools.zip_longest (inp_atomtype, inp_atomdata ): печать (atomtype + atomdata) Хотя цикл через одного генератора (inp_atomtype или inp_atomdata) печатает правильные данные, циклически их обоих одновременно (как в этом коде) печатает неправильные данные. ВТОРОЙ ВОПРОС:
user46581
1

голосов
1

ответ
37

Просмотры

Как использовать itertools.isslice () в закладке DELIM файл, который не содержит столбцы / заголовков строк

У меня есть .txt файл, который содержит 1000 строк 500 столбцов, содержащих целые числа в диапазоне от 0-2. Например, первые три строки может выглядеть следующим образом: 0 0 0 0 2 2 2 2 2 1 1 1 0 2 1 2 ... 2 2 0 2 0 0 0 0 1 0 0 0 1 0 2 0 ... 0 2 2 2 2 2 2 2 0 1 1 1 1 1 1 1 ... Я собираюсь сравнить каждое значение столбца к другому в данной строке и сделать что-то с ними. Тем не менее, мне нужно выделить первые 500 строк из последнего 500 во время моей итерации. если код во что-то вроде: для строки в файле: для col1 в ряде: для col2 в ряде: цикл будет включать в себя все строки. Моя цель состоит в том, чтобы иметь два для петель, как это, один для первых 500 строк, а другого за последние 500 строк. Строки разделяются символами новой строки, и это .txt файл я читаю в использовании csv.reader. Поиск вокруг некоторых я вижу, что itertools.isslice () может работать по этой проблеме, но во всех примерах, которые я видел в документации есть либо одна строки или есть качество первого столбца в каждой строке, которые могут быть использованы для различения Рядов самих. Могу ли я на правильном мышлении дорожки можно использовать itertools.isslice () для разделения строк или будет что здесь не работает? Заранее спасибо за помощь.
Matthew Lollar
1

голосов
1

ответ
48

Просмотры

Комбинации уникальных продуктов с itertools

У меня есть вложенный список, и хотел бы сделать продукт из двух пунктов. тест = [[( 'сок', 'NOUN'), ( 'оранжевый', 'ВКУС')], [( 'сок', 'NOUN'), ( 'оранжевый', 'ВКУС'), ( 'лимон' 'ВКУС')], [( 'оранжевый', 'ВКУС'), ( 'чип', 'NOUN')]] То, что я ожидал что-то вроде этого: [(( 'сок', 'NOUN'), ( 'лимон', 'ВКУС')), (( 'сок', 'NOUN'), ( 'чип', 'NOUN')), (( 'оранжевый', 'ВКУС'), ( 'лимон', «ВКУС ')), ((' оранжевый», 'ВКУС'), ( 'чип', 'NOUN')), (( 'лимон', 'ВКУС'), ( 'чип', 'NOUN'))] То есть сказать, я хотел бы получить перестановку через списки, но только для уникальных предметов. Я предпочитаю использовать itertools. Раньше я пробовал список (itertools.product (* тест)) Но я понял, что это будет производить продукт длины вложенного списка ... Мой текущий код: unique_list = список (набор (itertools.chain (* тест)) ) список (itertools.combinations (unique_list, 2)) Мой мыслительный процесс, чтобы получить уникальные элементы в списке первый вложенный, поэтому вложенный список будет [[( «сок», «NOUN»), ( «оранжевый», 'АРОМАТИЧЕСКОЕ')], [( 'лимон', 'АРОМАТИЧЕСКОЕ')], [( 'чипа', 'СУЩЕСТВИТЕЛЬНОЕ')]], а затем использовать itertools.combinations переставлять. Тем не менее, она будет переставлять в списке (то есть сок и оранжевый появляются вместе), которые я не хочу в моих результатах. unique_list = список (набор (itertools.chain (* тест))) список (itertools.combinations (unique_list, 2)) Мой мыслительный процесс, чтобы получить уникальные элементы в списке первый вложенный, поэтому вложенный список будет [[( 'сок', 'NOUN'), ( 'оранжевый', 'ВКУС')], [( 'лимон', 'ВКУС')], [( 'чип', 'NOUN')]], а затем использовать itertools. комбинации переставлять. Тем не менее, она будет переставлять в списке (то есть сок и оранжевый появляются вместе), которые я не хочу в моих результатах. unique_list = список (набор (itertools.chain (* тест))) список (itertools.combinations (unique_list, 2)) Мой мыслительный процесс, чтобы получить уникальные элементы в списке первый вложенный, поэтому вложенный список будет [[( 'сок', 'NOUN'), ( 'оранжевый', 'ВКУС')], [( 'лимон', 'ВКУС')], [( 'чип', 'NOUN')]], а затем использовать itertools. комбинации переставлять. Тем не менее, она будет переставлять в списке (то есть сок и оранжевый появляются вместе), которые я не хочу в моих результатах. )]], А затем использовать itertools.combinations переставлять. Тем не менее, она будет переставлять в списке (то есть сок и оранжевый появляются вместе), которые я не хочу в моих результатах. )]], А затем использовать itertools.combinations переставлять. Тем не менее, она будет переставлять в списке (то есть сок и оранжевый появляются вместе), которые я не хочу в моих результатах.
Abbey
1

голосов
1

ответ
0

Просмотры

печать символов до и после TakeWhile в питона

У меня есть список питона, в котором мне нужно сделать TakeWhile. Я получаю результат, как [ 'Fd', 'dfdf', 'ключевое слово', 'ССД', 'SDSD'], но мне нужно, чтобы получить [ '3 =', 'Fd', 'dfdf', 'ключевое слово', ' SSD», 'SDSD', ';'] из itertools импорта TakeWhile, цепь L = [1, 2, "3 =", "FD", "dfdf", "ключевое слово", "SSD", "SDSD"," ;», "DDS"] = s "ключевое слово" # получить все элементы на правой части правой ами = TakeWhile (лямбда х: ';' не в X, L [l.index (ы) + 1:]) # Get все элементы в левой части с помощью перевернутого подсписка влево = TakeWhile (лямбды-х: «=» не в й, л [l.index (ы) :: - 1]) # реверс левого списка назад и присоединиться к нему в правый список subl = список (цепь (список (слева) [:: - 1],
qwww
0

голосов
0

ответ
0

Просмотры

Путь выработать itertools в forloop, чтобы остановить MemoryError

Следующий код failes из-за MemoryError. Я считаю, что это происходит потому, что он вычисляет itertools часть на одном дыхании. Возможно ли itertools быть вычислить себя вместе с моим для петель, чтобы избежать заполнения моей памяти. (Или это единственный вариант, чтобы получить больший компьютер!) Пожалуйста, посоветуйте - N = 8 а = TWFclass (N) б = [] с = np.zeros_like (a.TWFm) для г в np.array (список (itertools. продукт (диапазон (N), повтор = INT (N * np.log2 (N))))): a.change (i.reshape (N, Int (np.log2 (N)))), если a.check ( 16): b.append (a.TWFm) немного информации о коде: -The itertools оператор генерирует номера для матрицы a.TWFm -Этот затем присваивается a.TWFm с помощью функции .Кнопки -.check функция возвращает истину или ложь из некоторых вычислений, добавляя его в список б для анализа позже
dyslexicgruffalo
1

голосов
1

ответ
966

Просмотры

питон itertools продукт медленно является скорость записи на выход файл узкой

У меня есть простая функция питона выполняя функцию itertools продукта. Как видно ниже. (П, сл) Защиту корзина б = 8, а Ь <п ввозных itertools: п = п - 1 для р в itertools.product (Seq, повторить = п): file.write (. '' Присоединиться) р (файл) .WRITE ( «\ п») функция работает, но это очень медленно. Он даже не использует заметное количество ресурсов. Мне было интересно, если бутылка шея была скорость записи диска? в настоящее время сценария составляет в среднем в 2,5 Мб в секунду. Я также попытался это с твердотельным накопителем и получил ту же скорость, что приводит меня к мысли, что скорость записи не горлышко бутылки. Есть ли способ, чтобы ускорить эту функцию и использовать больше системных ресурсов? или itertools просто медленно? Простите, я новичок в Python.
jkdba
1

голосов
2

ответ
6.8k

Просмотры

Перестановки в Python3

Я не могу понять, как получить перестановки вернуть фактическую перестановку, а не я пробовал много разных вещи, но безрезультатно. Код, который я использовал, был от itertools импортных перестановок, а затем перестановки ([1,2,3]). Спасибо!
Jared
1

голосов
1

ответ
114

Просмотры

рассчитать индивидуальные частоты для обоих элементов пары этих 2-х элементов из матрицы Numpy в Python

Работа с этой матрицей Numpy: >>> печать матрицы [[ 'L' 'G' 'Т' 'G' 'А' 'Р' 'V' 'I'] [ 'А' 'А' 'S' «G ' 'P' 'S' 'S' 'G'] [' A» 'A' 'S' 'G', 'P' 'S' 'S' 'G'] [ 'G' 'L' 'Т' 'G' 'A' 'Р' 'V' 'I']] у меня уже есть этот кусок кода: для I, J в itertools.combinations (диапазон (LEN (matrix.T)), 2): C = матрицы [: [I, J]]. отсчеты = collections.Counter (карта (кортеж, с)) печати 'столбцы {} и {}' формат (I, J) для AB в импульсах: freq_AB = поплавок (поплавок (отсчеты [АВ]) / LEN (с)) печати 'Частота {} = {}' формат. (АВ,freq_AB) печати, который производит столбцы 0 и 1 Частота ( 'A', 'A') = 0,5 Частота ( 'G', 'L') = 0,25 Частота ( 'L', 'G') = 0,25 столбцов 0 и 2 Частота ( 'A', 'S') = 0,5 Частота ( 'G', 'Т') = 0,25 Частота ( 'L', 'Т') = 0,25 [...] что я хотел добавить к коду является поиск частоты в колонке (I, J) для каждой буквы из пары букв столбцов I, J ... Я имею в виду, вывод, аналогичный следующему: колонки 0 и 1 Частота ( 'A', 'A') = 0,5 Freq от 'A' в колонке 0 = 0,5 Част из 'A' в колонке 1 = 0,5 Частота ( 'G', 'L') = 0,25 Freq из «G «в колонке 0 = 0,25 Част из„L“в колонке 1 = 0,25 Частота (» L»,'G') = 0,25 Часты из 'L' в колонке 0 = 0,25 Часты из 'G' в колонке 1 = 0,25 столбцов 0 и 2 Частоты ( 'A', 'S') = 0,5 Freq от 'А' в колонке 0 = 0,5 Част из «S» в колонке 2 = 0,5 Частота ( «G», «Т») = 0,25 Freq из «G» в колонке 0 = 0,25 Freq из «Т» в колонке 2 = 0,5 Частота (» L»,„Т“) = 0,25 Част из„L“в колонке 0 = 0,25 Част из„Т“в колонке 2 = 0,5 [...] Любая помощь будет высоко оцененов колонке 0 = 0,25 Част из «Т» в колонке 2 = 0,5 Частота ( «L», «Т») = 0,25 Freq из «L» в колонке 0 = 0,25 Freq из «Т» в колонке 2 = 0,5 [. ..] Любая помощь будет принята с благодарностьюв колонке 0 = 0,25 Част из «Т» в колонке 2 = 0,5 Частота ( «L», «Т») = 0,25 Freq из «L» в колонке 0 = 0,25 Freq из «Т» в колонке 2 = 0,5 [. ..] Любая помощь будет принята с благодарностью
Àngel Ba
1

голосов
3

ответ
169

Просмотры

Как я могу сравнить на равенство значения двух списков в одном цикле?

Поэтому я хочу, чтобы сделать это, так что я могу проверить, если другой код работает, но я получаю эту ошибку: «индексный список из диапазона» Для следующего кода: для L1 [я] в диапазоне (0, длина (L1)) : если L1 [я] == L2 [я]: L1 [я] = 'OK' Что происходит не так?
user2391019
0

голосов
2

ответ
25

Просмотры

Генерация всех сочетаний списка строк с обеих скобок и оператора быть переставлены, слишком

Скажем, у меня есть список строк: L = [ «A», «B», «C», «D»] Я знаю, что для создания всех комбинаций их с заменой, выбрать п, что я хотел бы использовать itertools .combinations библиотека метод, чтобы получить их. Например, список (комбинации (л, 2)) дали бы мне [[ 'А', 'В'], [ 'A', 'C'], [ 'A', 'D'], [ 'В' , «C»], [ «B», «D»], [ «C», «D»]] Теперь, давайте скажем, я хочу добавить в две операции для них и и ИЛИ Так что я хотел бы получить [[» а»,„И“,„в“], [„A“,„ИЛИ“,„B“], и т.д..] Продлить, что еще больше, чтобы получить вложенные скобки (отображается здесь, как скобки для простоты), в случае, когда п = 3: [[[ 'А', 'И', 'В'], 'И', 'C'], [[ 'А', 'И',
horcle_buzz
1

голосов
2

ответ
163

Просмотры

Python itertools.product с произвольным числом множеств

Я хотел бы выполнить следующий код: темп = [] temp.append ([1,2]) temp.append ([3,4]) temp.append ([5,6]) Список печати (itertools.product (темп [0], темп [1], темп [2])) Тем не менее, я хотел бы выполнить его температуру с произвольной длиной. Т.е. что-то подобное: список печати (itertools.product (темп)) Как форматировать вход правильно для itertools.product для получения того же результата в первом сегменте коды без явного знать, сколько записей есть в температуре?
user2331057

Просмотр дополнительных вопросов