Неправильная работа модуля random python

Суть кода: считывание имён пользователей из csv файла.

Вот так код работает идеально (считывание имен происходит правильно и вся нужная информация выводится):

import csv, random
with open ("members.csv", newline = '') as csvfile:
    reader = csv.DictReader(csvfile, delimiter = ',')
    for row in reader:
        users = row['username']
        print(users)

Но когда я добавляю одну строку с рандомным выбором имени пользователя, то выводятся просто строки с рандомными одиночными буквами, которые не имеют никакого отношения к именам пользователей (к примеру: d w t)

import csv, random
with open ("members.csv", newline = '') as csvfile:
    reader = csv.DictReader(csvfile, delimiter = ',')
    for row in reader:
        users = row['username']
        user1 = random.choice(users)
        print(user1)

С чем может быть это связано?


Ответы (1 шт):

Автор решения: MaxU

Это связано с тем что вы выбираете случайную букву из строки users.

users - у вас является строкой со значением из столбца username для текущей строки цикла.

Возможно вы хотели сделать что-то подобное:

import csv, random

users = []
with open ("members.csv", newline = '') as csvfile:
    reader = csv.DictReader(csvfile, delimiter = ',')
    for row in reader:
        users.append(row['username'])

random_user = random.choice(users)
print(random_user)
→ Ссылка