Sözlüğe Döngüden Randint metodu ile Key, Value Eklemek

Merhaba resimdeki maç sonuçlarını döngü ile oluşturup results sözlüğüne
‘Liverpool - Manchester United’ : 4 - 1, ‘Liverpool - Manchester United’ : 4 - 5, formatında nasıl ekleyebilirim

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}')

mac_1 = macListesi[0]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_1, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_2 = macListesi[1]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_2, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_3 = macListesi[2]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_3, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_4 = macListesi[3]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_4, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_5 = macListesi[4]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_5, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_6 = macListesi[5]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_6, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_7 = macListesi[6]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_7, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_8 = macListesi[7]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_8, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_9 = macListesi[8]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_9, sep=" - ")
print(f"Match Result :  ",home, " - ", away)
mac_10 = macListesi[9]
home = random.randint(0, 6)
away = random.randint(0, 6)
print(*mac_10, sep=" - ")
print(f"Match Result :  ",home, " - ", away)

results = {}

for match, result in macListesi:
	home = random.randint(0, 6)
	away = random.randint(0, 6)
	results[match] = (home, away)
print()
print(results)

Merhabalar,

[...]
results = {}

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

[...]

Böyle bir şey işinizi görür mü?

1 Beğeni

Bir de dikkatimi çekti de. İşi baya uzatmışsın.

[...]
for takimlar in macListesi:
	print(*takimlar, sep=' - ')
	home = random.randint(0, 6)
	away = random.randint(0, 6)
	print(f"Match Result :  ",home, " - ", away)
[...]

Olacak o kadar daha yeniyim. Önce yapabildiğim şekilde çözdüm sonra daha kısa olması için döngü ile çözmeye çalıştım boşuna dememişler bildiğin yol en kestirme yoldur diye. :slight_smile:

for match, result in macListesi:
	home = random.randint(0, 6)
	away = random.randint(0, 6)
	results[match] = (home, away)

for match, result in macListesi:
	home = str(random.randint(0, 6))
	away = str(random.randint(0, 6))
	results[match + ' - ' + result] = home + ' - ' + away

Düşünce olarak sizin gibi düşünmüşüm ama kodun
results[match + ’ - ’ + result] = home + ’ - ’ + away
kısmında çuvallamışım.Strınge çevirmek aklıma gelmemişti. çünkü daha sonra kuracağım if yapıları ile maç sonuçlarına göre puan vermek istiyordum takımlara ama zaten farketmiyor daha sonra integer yaparım. Teşekkür ederim.

1 Beğeni

:slight_smile:

Oluyor öyle, insanız hepimiz.

Ben üşendiğimden öyle yazmıştım. Şöyle de yapabilirsin.

for match, result in macListesi:
	home = random.randint(0, 6)
	away = random.randint(0, 6)
	results[match + ' - ' + result] = str(home) + ' - ' + str(away)

Ben teşekkür ederim. İyi geceler dilerim.