Python: Kleinsten Wert mit dem größten Wert innerhalb einer Liste tauschen?

Ich habe folgende Methode:

def tausche_wertung(bester_Termin):
       bester_Termin[min], bester_Termin[max] = bester_Termin[max], bester_Termin[min]
       return bester_Termin

Dabei ist "bester_Termin" ein Ergebnis aus einem folgendem Code, der also immer unterschiedlich ausfällt (gearbeitet wurde mit datetime):

print("Bitte geben Sie die Namen oder Bezeichnungen der Mitglieder ein, die zum Treffen kommen sollen (Anmerkung: mit Komma getrennt)")
mitglieder = [name.strip() for name in input().split(",")]

print("Bitte geben Sie die mögliche Termine ein (Anmerkung: mit Komma getrennt und im Format TT.MM.JJJJ)")
termine = [[datetime.strptime(datum.strip(),"%d.%m.%Y"),0] for datum in input().split(",")]


for mitglied in mitglieder:
   for termin in termine:
       termin[1] += int(input(f"Wie gut passt {termin[0]:%A, der %d.%m.%Y} für {mitglied}? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): "))
   print()

# Den Durchschnitt aller Termine auflisten.
print("Durchschnitt pro Termin:")
for termin in termine:
   print(f"{termin[0]:%A, der %d.%m.%Y}: {termin[1]/len(mitglieder):.2f}")

# Den best-passendsten Termin raussuchen. Anmerkung: Wenn es mehrmals den gleichen Durchschnitt gibt, wird der früheste Termin ausgeben.
bester_Termin = min(termine, key=lambda termin:termin[1])

Als beispiel-print kommt folgendesheraus:

[datetime.datetime(3, 1, 1, 0, 0), 3]

In diesem Fall, war der dritte Termin der beste und die 1 war die kleinste Eingabe der 1. Person für irgendeinen Termin, die zweite 1 war die kleinste Eingabe der 4. Person, wieder für irgendeinen Termin und die beiden 0en waren von Person 2. und 3. schon für den dritten Termin eingeben und automatisch der kleinste Wert.

Die Liste wird also von Groß zu Klein aufgelisten sehe ich das richtig? Denn die vorliegende Liste wäre hier quasi [Person1., Person 4., Person 2., Person 3.] und nicht von 1-4 aufwärts?

Ausgabe:

Mein Ziel ist es erstmal die Werte für den besten Termin nur mit einer anderen Eingabe zu tauschen, wenn nicht bereits die kleinste Wertung für den Termin vorliegt. Das ist hier ja bereits gegeben, wenn ich es richtig sehe, denn die beiden 0en bleiben gleich.

Anschließend will ich, dass das Programm ausgibt wie oft ein Wechsel der Bewertung möglich ist, d.h. wenn es bereits die kleinste bzw. beste Wertung ist (0 ist hier die beste) wird nicht getauscht, ebenso wenn es nicht möglich ist, da alle Wertungen gleich waren o.ä.

Und dann soll das Programm, wenn möglich, noch ausgeben bei welchem Mitglied getauscht wurde, in diesem Fall bei Person 1.

Erläuterung Anhand Beispiel:

Mittwoch, der 01.01.0003 Termin ist der passendste, und Person 1 hat da eine 2, welche man mit der 1 der Wertung des ersten Termins tauschen kann.

Wunschprint: Es ist ein Wechsel der Bewertung möglich, und das bei Person 1

oder noch besser aber kein Zwang, wenn es zu kompliziert ist:

Es ist der Wechsel der Wertung des 3. mit der des 1. Termins bei Person 1 möglich.
Bild zum Beitrag
Computer, programmieren, Informatik
ASCII Art in der Konsole ausgeben [C#]?

Guten Abend! Ich versuche seit einigen Tagen ein byte array in der Konsole auszugeben, was dann später "C#" als kleines Artwork in der Konsole ausgegeben wird. Ich weiß aber nicht, wie ich

a) mein Ganzes byte Array ausgeben lasse (er gibt nicht das vollständige array in der Konsole aus warum auch immer) und:

b) wie ich die Zahlen im array zu Zeichen zuweisen kann (sprich Leerzeichen, C und #) damit es das C# "artwork" in der cmd zeigt.

Wo liegen meine Fehler? Wenn möglich bitte mit Beispielen.

using System;
using System.IO;

namespace ESA_2
{
   class Program
   {
       public void ESAIn(string Path)
       {
           byte[] array = { 32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32,
                           32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
                           67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
                           67, 32, 32, 32, 32, 32, 32, 35, 32, 35, 32,
                           67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
                           32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
                           32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32 };

           //Anhand der ASCII Code Tabelle lassen sich 32 zu Leerzeichen, 67 zu C
           // und die 35 zu # Zeichen Übersetzen, was, wenn wir die Ausgabe
           //umstrukturieren, eine 'C#' in der Konsole ausgibt


           FileStream stream = File.Open(Path, FileMode.Truncate, FileAccess.ReadWrite);


           stream.Write(array, 0, array.Length);
           stream.Close();
       }
       public void ESAOut(string Path)
       {
           BinaryReader reader = new BinaryReader(File.Open(Path, FileMode.Open));
           var count = 0;
           for (int i = 0; i < reader.ReadByte(); i++)
           {
               count++;
               Console.Write("{0} ", reader.ReadByte());
               if (count == 11)
               {
                   Console.Write("\n");
                   count = 0;
               }
           }
           reader.Close();
           Console.WriteLine();
       }
       static void Main(string[] args)
       {
           string Path = @"C:\Users\Dean Aleksander\source\repos\ESA_2\ESA_2\ESA02.txt"; ;
           Program test = new Program();
           test.ESAIn(Path);
           test.ESAOut(Path);
           Console.ReadLine();
       }
   }
}

Die Aufgabenstellung: "Schreiben Sie eine Methode „ESA2In“ in einem neuen Projekt „ESA_2“, mit der dieses Array in eine in Ihrem Projektmappenordner anzulegende Datei „ESA2.txt“ gespeichert werden kann. Schreiben Sie sodann eine weitere Methode „ESA2Out“, mit der dieses Array aus der Datei ausgelesen und auf Konsole ausgegeben werden kann. Die Konsolenausgabe soll in sieben Zeilen mit jeweils elf Zeichen gegliedert werden – dies entspricht auch der vorstehenden Anordnung der Array-Elemente. Beachten Sie aber, dass eine Zeile im Array aus 33 Zeichen besteht – Ihre Konsolenausgabe soll hingegen elf Zeichen umfassen. "

Computer, Schule, C Sharp, Informatik, Visual Studio
Eine Internetverbindung über DLAN kann nicht hergestellt werden. Woran liegts?

Guten Tag!

Kurze Hinführung (skippen wer direkt zum Problem möchte):

Ich habe mir vor ca. 3 Monaten eine VR Brille zugelegt um online mit Freunden zocken zu können. Bisher war es mir allerdings nur selten möglich VR online zu spielen, da der Router im Haus nur eine 2,4GHz Frequenz hat. Wenn sich die VR Controller via Bluetooth verbinden, bricht die drahtlose Internetverbindung (z.B am Handy das Internet oder am PC, der aktuell mit einem WLAN Stick läuft) im Haus zusammen, da die Funkkanäle dadurch wohl überlastet sind (eingesehen in der Fritz!Box). Lösungsansätze wären hier wohl ein 5GHz Router, den ich mir auch irgendwann zulege werde, aber aktuell nicht leisten kann, eine LAN Verbindung, die ich hier aber nicht legen kann und DLAN. Und da kommen wir zum Problem:

Ich habe mir gestern in der Hoffnung, dass ich das Problem so lösen kann, auch weil es mir von einigen Seiten empfohlen wurde, DLAN zugelegt. Naja gut, zu mindestens soll es das Problem so halbwegs lösen. Am Handy hätte ich wohl während ich unter der VR Brille bin weiterhin kein Internet, aber das wäre ja egal. Wichtig ist halt nur, dass ich es am PC habe um online via Steam spielen zu können.

Jedoch hat das ganze natürlich nicht so einfach funktioniert, wie es versprochen wurde. Das DLAN ist richtig angeschlossen, da bin ich mir ganz sicher. Dafür hab ich mir sogar extra nochmal ein Tutorial für Dummies angeschaut, bevor ich hier angefangen hab die Frage zu schreiben. Gepaart sind die beiden Teile auch und auch die 3 Lichter dafür, dass ich es richtig angeschlossen habe, dass die Teile sich finden und dass er eine Internetverbindung hat, leuchten.

Dennoch funktioniert irgendetwas nicht. Und zwar zeigt Windows mir folgendes an:

Ich hab schon gesehen, dass die Meldung "Nicht identifiziertes Netzwerk" sowohl bei LAN, als logischerweise auch bei DLAN, mehrere Gründe haben kann. Ich habe auch schon einiges probiert, komme aber nicht weiter. Daher die Frage an euch, was kann ich tun, um das Netzwerk zu identifizieren? Ich hoffe jemand von euch kann mir da weiterhelfen.

Hier eine Liste von Dingen die ich schon getan habe:

  • Router neu gestartet.
  • DLAN neu aufgebaut.
  • In CMD: ipconfig /release bzw. ipconfig /renew ausgeführt. Bringt ja aber eh eigentlich nur was wenn ich verbunden wäre.
  • In Fritz!Box: geschaut ob DHCP deaktiviert ist, wars nicht.
  • In RegEdit: IpAutoconfiguration hinzugefügt.
  • Avast ausgeschaltet, warum auch immer das bei jemandem geholfen hat.
  • Windows Problembehandlung
  • Geschaut ob die ipv4 Einstellungen des Ethernet stimmen.
  • Überprüft ob aus Versehen eine 169. bei der IP zugewiesen wurde, anstelle einer 192. Wurde es nicht.
  • Treiber Updates
  • DLAN KIT woanders getestet
  • ipv4 manuell zugewiesen.
  • LAN Anschluss getestet, funktioniert.

Allgemein hab ich auch Infos übers Ethernet, was anscheinend nicht alle bei diesem Problem haben. Auch hierzu ein Screen, wenn die paar Infos irgendwie helfen sollten:

Beim DLAN handelt es sich übrigens um das tp-link TL-PA4010P Kit.

Bild zum Beitrag
Computer, Internet, Windows, Internetverbindung, Technik, dLAN, Ethernet, Informatik, LAN, Technologie, VR, Spiele und Gaming

Meistgelesene Beiträge zum Thema Informatik