Frage

Dies ist eine Art von Neuling Frage, aber ich konnte keine Lösung finden. Ich las eine Liste von Zeichenfolgen aus einer Datei, und versuchen, eine zufällige, 5 Element Probe mit random.sample zu bekommen, aber die resultung Liste enthält nur Zeichen. Warum ist das so? Wie kann ich eine zufällige Stichprobe Liste von Strings bekommen?

Das ist, was ich tue:

    names = random.sample( open('names.txt').read(), 5 )
    print names

Dies ergibt eine Fünf-Elemente-Zeichenliste wie:

['\x91', 'h', 'l', 'n', 's']

Wenn ich den random.sample Teil weglassen, und die Liste drucken, druckt es jede Zeile der Datei aus, die das erwartete Verhalten ist, und beweist, dass die Datei OK gelesen wird.

War es hilfreich?

Lösung

Wenn die Namen sind alle auf separaten Linien, ry wie folgt vor:

names = random.sample(open('names.txt').readlines(), count)
print names

Im Wesentlichen werden Sie falsch, weil Sie eine interable random.sample() übergeben müssen. Wenn Sie eine Zeichenfolge übergeben es behandelt sie wie eine Liste. Wenn Sie Namen sind alle auf einer Linie, müssen Sie split() verwenden, um sie auseinander zu ziehen und diese Liste übergeben random.sample().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top