Неправильная работа модуля 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)