В приведенном ниже примере «Человек 1» напрямую владеет 50% акций «Компании 1», затем необходимо проверить, имеет ли «Компания 1» также акции других компаний. «Компания 1» владеет 50% акций «Компании 2» и 20% акций «Компании 3». это означает, что «Лицо 1» косвенно имеет некоторую долю в «Компании 2» и «Компании 3».
Желаемый результат в этом примере:
Компания 1: Человек 1, 0,5
Компания 2: Компания 1, 0,5
Компания 3: Компания 2, 0,2
Это мой код:
Код: Выделить всё
companies = {
'Company 1': {
'Person 1': 0.5,
'Person 2': 0.3,
'Person 3': 0.2,
},
'Company 2': {
'Person 4': 0.25,
'Company 1': 0.5,
'Person 5': 0.25,
},
'Company 3': {
'Person 5': 0.6,
'Person 6': 0.2,
'Company 2': 0.2,
},
}
def is_shareholder_in_company(company, companies, shareholder_name):
company_shareholders = companies[company]
for shareholder, ownership_percentage in company_shareholders.items():
if shareholder_name == shareholder:
print(company, ':',shareholder, ',', ownership_percentage)
return True
for i in companies:
if is_shareholder_in_company(i, companies, 'Person 1'):
temp_name = i
for j in companies:
if is_shareholder_in_company(j, companies, i):
temp_name = j
for x in companies:
if is_shareholder_in_company(x, companies, j):
temp_name = x
спасибо.
Подробнее здесь: https://stackoverflow.com/questions/788 ... -in-python