Sözlük yapısı nasıl oluşturulmalı

Merhaba maç sonuçlarını içinde barındıran bir sözlük yapım var. Fakat bu yapıyı key = ‘Liverpool - Manchester United’ şeklinde oluşturduğumdan value değeri olan ’ 0 - 2 ’ değerlerinden 0 değerini liverpool 2 değerini Manchester United için çekemiyorum. Bu değerlere ulaşabilmek için kodu nasıl revize etmeliyim. Home ve away değerlerini kuracağım if yapısı ile kontrol ettirip liverpool için 0 puan Manchester Unıted için 3 puanı kuracağım Puan durumu cetveline işletmek istiyorum.

def balcomb2i(n):
	for i in range(n):
		for j in range(i+1, n):
			if j - i <= n // 2:
				yield i, j
			else:
				yield j, i

def balcomb2(xs):
	return list(map(lambda c: (xs[c[0]], xs[c[1]]), balcomb2i(len(xs))))


teams = [
	"Liverpool", "Manchester United", "Arsenal", "Barcelona", "Real Madrid"
]
#print("\n".join(map(str, sorted(balcomb2(teams)))))
print()
print(f'{"Champions Ligue Matches 2020-2021":-^100}')
for match in enumerate(balcomb2(teams),1):
	print(*match)

macListesi = balcomb2(teams)
print(f'{"Match Results":-^100}')

results = {}
for match, result in macListesi:
	home = random.randint(0, 6)
	away = random.randint(0, 6)
	results[match + ' - ' + result] = str(home) + ' - ' + str(away)
print()
for match, result in results.items():
  	print(f'{match} \n{result}')
print(results)

str.split metodunu parametre olarak "-" verip kullanabilirsiniz ama en doğrusu sözlüğü {("Liverpool", "Manchester United"): (0, 2)} şeklinde oluşturmanız.

2 Beğeni

Sn @EkremDincel ilginiz için teşekkür ederim. Sözlüğü söylediğiniz şekilde oluşturdum. key ve value değerlerini ayrı ayrı alabiliyorum. result.items ile de her iki anahtar ve value değerlerini alabiliyorum. Ama döngü ile liverpool home=5 Manchester Unıted away = 0 değerlerini nasıl çekebilirim. Bu değerleri aldığım takdirde

if home > away Liverpool takimina 3 puan
if home < away Manchester takımına 3 puan
if home == away her iki takima 1 er puan

seklinde kod yazıp bu puanları takımların hanelerinde toplattıracağım.

for x, y in results.keys():
	print(x, y)

for x, y in results.values():
	print(x, y)

for x, y in results.items():
	print(x, y)

İki tuple’ın da ilk indeksi home’u, diğer indeksi de away’ı temsil etmiyor mu zaten?

1 Beğeni

@EkremDincel Benden çok yaşayın sözlüğü döngüye sokmadan önce bunların sonucu tuple çıkıyor ordan yürümem lazım diye düşündüm sonra döngü ile key value derken tuple oldukları aklımdan çıkmış çok teşekkür ederim.