Форум сайта python.su
0
Доброго времени суток.
Помогите советом.
Есть такой вот код:
for x in range(length): rus_name_x = list_w_dicts[x]['rus_name'] original_name_x = list_w_dicts[x]['original_name'] production_year_x = list_w_dicts[x]['production_year'] director_x = list_w_dicts[x]['director'] scenarist_x = list_w_dicts[x]['scenarist'] actors_x = list_w_dicts[x]['actors'] for y in range(x+1, length): rus_name_y = list_w_dicts[y]['rus_name'] original_name_y = list_w_dicts[y]['original_name'] production_year_y = list_w_dicts[y]['production_year'] director_y = list_w_dicts[y]['director'] scenarist_y = list_w_dicts[y]['scenarist'] actors_y = list_w_dicts[y]['actors']
Отредактировано TitanFighter (Дек. 4, 2015 21:54:53)
Офлайн
24
Откройте для себя удивительный мир itertools
Офлайн
253
TitanFighterТак от цели зависит. Озвучте. Иначе будем считать что нужен код на разработку которого уйдет минимальное время.
Как лучше\оптимальней всего реализовать
TitanFighterВы что if не знаете как написать?
сравнить между собой значения этих переменных.
if (rus_name == actors) and (not rus_name is None): do_some() else: do_other()
Отредактировано doza_and (Дек. 4, 2015 22:13:18)
Офлайн
0
aybСпасибо. Потопал открывать.
Откройте для себя удивительный мир itertools
doza_andПерефразирую - подскажите пожалуйста, как лучше всего “в комплексе” решить все 3 пункта? Есть ли какое то подходящее для этого средство?
TitanFighter
Как лучше\оптимальней всего реализовать
Так от цели зависит. Озвучте. Иначе будем считать что нужен код на разработку которого уйдет минимальное время.
doza_andНе… Ну это уже слишком) Ключевые слова тут другие: Как лучше\оптимальней
Вы что if не знаете как написать?
if (rus_name == actors) and (not rus_name is None):
do_some()
else:
do_other()
Но это линейно (if имею ввиду).
Отредактировано TitanFighter (Дек. 4, 2015 22:30:01)
Офлайн
857
А где словесное описание задачи?
1. Сначала делаешь словесное описание алгоритма.
2. Потом рисуешь блок-схему по словесному описанию.
3. Потом пишешь псевдокод по блок-схеме.
4. И только потом пишешь код по псевдокоду.
Всё это сначала проделываешь на бумаге, потом - в воображении. Иначе будешь для каждой задачи по 500 кодов писать - и все неправильные.
Офлайн
0
doza_andПрошу прощения. Вы почти были правы
Вы что if не знаете как написать?
if (rus_name == actors) and (not rus_name is None):
do_some()
else:
do_other()
Все оказалось гораздо проще, чем я себе изначально представлялlist_w_dicts = [{'rus_name': 'Терминатор', 'original_name': 'Terminator', 'production_year': None, 'director': 'Кэмерон', 'actor': 'Schwarz111'}, {'rus_name': 'Терминатор', 'original_name': None, 'production_year': 2015, 'director': 'Кэмерон', 'actor': 'Schwarz'}] compare = [] length = len(list_w_dicts) for x in range(length): for y in range(x+1, length): for k,v in list_w_dicts[x].items(): # отобрали "общие" переменные if (v is not None) and list_w_dicts[y][k]: combine=(list_w_dicts[x][k], list_w_dicts[y][k]) compare.append(combine) print(compare) # [('Schwarz111', 'Schwarz'), ('Кэмерон', 'Кэмерон'), ('Терминатор', 'Терминатор')] # сравниваем значения переменных for item in compare: if all(x==item[0] for x in item): print('fantastish') else: print('bad') break
Отредактировано TitanFighter (Дек. 6, 2015 02:26:35)
Офлайн