Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 시리즈(Series)에 담을 짝수 인덱스 소문자 알파벳 5개 무작위 생성하기

이 글에서는 파이썬(Python)을 사용해 소문자 알파벳 중 짝수 인덱스에 위치한 문자들만 추출한 뒤, 그중 5개를 무작위로 선택하여 판다스(pandas) 시리즈(Series)로 만드는 두 가지 방법을 소개합니다.

풀이 방법 1: 슬라이싱 활용하기

가장 간결한 방법은 파이썬의 슬라이싱(slicing) 기능을 이용하는 것입니다. 단계별로 살펴보면 다음과 같습니다.

  • string.ascii_lowercase로 소문자 알파벳 전체('a'~'z')를 가져옵니다.

  • 슬라이싱 [::2]를 사용하면 인덱스 0, 2, 4,... 즉 짝수 인덱스에 해당하는 문자들만 한 번에 추출할 수 있습니다.

  • random.sample() 함수로 추출된 문자 목록에서 5개를 중복 없이 무작위로 선택합니다.

  • 마지막으로 선택된 값들을 pd.Series()에 넣어 시리즈를 생성합니다.

예제 코드

import pandas as pd
import string
import random as r

chars = string.ascii_lowercase
print("lowercase alphabets are:-", chars)

chars_list = list(chars)
data = r.sample(chars_list[::2], 5)
print("random even index char's are:-", data)

result = pd.Series(data)
print("Series:\n", result)

실행 결과

lowercase alphabets are:- abcdefghijklmnopqrstuvwxyz
random even index char's are:- ['w', 'k', 'i', 'u', 'm']
Series:
0    w
1    k
2    i
3    u
4    m
dtype: object

풀이 방법 2: 반복문으로 직접 필터링하기

슬라이싱 대신 for 반복문과 index() 메서드를 사용해 짝수 인덱스 요소를 직접 찾는 방식도 가능합니다.

  • 소문자 알파벳을 리스트로 정의합니다.

  • for 루프를 돌면서 각 문자의 인덱스를 확인하고, 인덱스를 2로 나눈 나머지가 0인(짝수 인덱스) 문자만 새로운 리스트에 추가합니다.

  • 필터링된 리스트에서 random.sample()로 5개를 추출한 후 바로 시리즈로 변환합니다.

예제 코드

import string
import pandas as pd
import random as r

l = list(string.ascii_lowercase)
ls = []
for i in l:
    if l.index(i) % 2 == 0:
        ls.append(i)

data = pd.Series(r.sample(ls, 5))
print("Series:\n", data)

실행 결과

Series:
0    o
1    i
2    q
3    c
4    a
dtype: object

정리

두 방법 모두 동일한 결과를 얻을 수 있지만, 방법 1의 슬라이싱([::2]) 방식이 코드가 더 짧고 가독성이 좋아 일반적으로 권장됩니다. 반면 방법 2는 반복문의 동작 원리를 학습하는 데 유용합니다. 참고로 random.sample()은 실행할 때마다 다른 문자를 선택하므로 출력 결과는 매번 달라질 수 있습니다.