티스토리 뷰
교육을 진행하다가 분반을 위한 코드를 작성하게 되었다.
엑셀의 명단 이름을 그대로 끌어와서 원하는 수대로 조추첨을 해주는 코드
import random
input_string = '''권서연
김대건
김소연
김수현
김영미
김현진
노도희
신지원
윤나연
이범필
이용인
이재희
이하정
장애리
조성구
조원규
채연아
최영철
홍노영'''
temp = input_string.split('\n')
def get_random_groups(lst, group_size):
random.shuffle(lst) # 리스트를 섞음
random_groups = [] # 빈 리스트를 생성하여 랜덤하게 조 편성
num_groups = len(lst) // group_size # 그룹의 개수 계산
# 그룹 개수만큼 반복
for i in range(num_groups):
start_idx = i * group_size # 현재 그룹의 시작 인덱스 계산
# print("start_idx >",start_idx)
end_idx = start_idx + group_size # 현재 그룹의 끝 인덱스 계산
# print("end_idx >",end_idx)
group = lst[start_idx:end_idx] # 현재 그룹을 리스트 슬라이싱을 통해 추출
# print(group)
# print("################################")
random_groups.append(group) # 추출한 그룹을 random_groups 리스트에 추가
return random_groups # 랜덤 그룹의 리스트 반환
def line_change(lis):
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 그룹에 부여할 알파벳 리스트
num_alphabets = len(alphabet) # 사용 가능한 알파벳 개수
num_groups = len(lis) # 그룹의 개수
#enumerate로 인덱스와 값 리턴
for i, group in enumerate(lis):
group_name = 'Group '
quotient = i // num_alphabets # 몫을 계산하여 알파벳 조합을 구성
remainder = i % num_alphabets # 나머지를 계산하여 알파벳 인덱스를 얻음
if quotient > 0:
group_name += alphabet[quotient - 1] # 알파벳 조합의 첫 글자를 추가. 1바퀴 돌면 A, 2바퀴 돌면 B 이런 식으로
group_name += alphabet[remainder] # 나머지에 해당하는 알파벳을 추가
print('########################################')
print(group_name)
print('\n'.join(group))
random_group = get_random_groups(temp, 8)
line_change(random_group)
# print(random_elements)
'language > python' 카테고리의 다른 글
파이썬 발표자 랜덤추첨 (0) | 2023.07.18 |
---|---|
파이썬 pdf에서 png (0) | 2023.07.18 |
파이썬 엑셀에서 pdf로 (0) | 2023.07.18 |
pip를 찾을 수 없음 (0) | 2023.07.18 |
certificate verify failed: unable to get local issuer certificate (0) | 2023.07.17 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 동적크롤링
- EC2
- 대규모더미데이터
- jmeter부하테스트
- Spring
- 항해
- hackerrank
- CorrectnessAndTheLoopInvariant
- Python
- jmeter쿠키
- jmeter테스트
- Java
- Redis
- 스프링faker
- 자바
- jwt
- Lock
- jmeter시나리오
- 부하테스트시나리오
- jmeter세션
- index
- 토큰
- bankersRounding
- jmeter로그인
- pessimisticlock
- jmeter토큰
- CheckedException
- Redisson
- 인덱스
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함