파이썬/문자열

파이썬 문자열2

watervin 2022. 1. 7. 11:41



컴프리핸션
[ 수식 for 변수 in 리스트 if 조건 ]

ex ) print( [ 수식 for 변수 in 리스트 if 조건 ] )
*컬렉션의 개별데이터 _> element

 

#컴프리핸션
nums = [ n*2 for n in range(1,11)]
for i in nums:
    print(i ,end = " , ")

print("\n----다른 예제----")

 #컴프리핸션 안쓴경우
nums = []
for n in range(1,11):
    nums.append(n*2)
print(nums)

print("\n----다른 예제----")
#필터링 기능
print([ n for n in range(1,11) if n % 3 == 0])

리스트 삽입 

*append(값)
*insert(위치, 값)

 

nums = [1,2,3,4,5]
nums.append(5)
print(nums)

nums.insert(2,99)
print(nums)
nums = [1,2,3,4]
nums[2:2] = [90,91,92] #기존 리스트에 새로운 값 넣기
print(nums)

print("----다른 예제----")

num = [1,2,3,4]
num[2] = [90,91,92] #이건 리스트 자체를 새로 넣는거
print(num)

리스트 연결

리스트1.extend(리스트2)
리스트1 = 리스트1 +리스트2

list1 = [1,2,3,4,5]
list2 = [10,20,30]
list1.extend(list2)
print(list1)

리스트 삭제

.remove(값) - 첫번째 요소만 제거
del(리스트[인덱스]) - 지정한 인덱스의 요소 제거
[시작:끝] = []

 

score = [88,95,70,100,99,88,78,50]
score.remove(100)
print(score)

del(score[2])
print(score)

score[1:4] = []
print(score)

 

pop() - 리스트의 끝 요소를 삭제하고 삭제한 요소를 리턴
.pop(인덱스) -  지정한 인덱스의 끝 요소를 삭제하고 학제한 요소 리턴

 

score = [88,95,70,100,99,88,78,50]
print(score.pop())
print(score.pop())
print(score.pop(1))
print(score)
score = [88,95,70,100,99]
score.append(50)


print('큐',score)
print('큐',score.pop(0))
print('큐',score)


print("---다른예제---")
score = [88,95,70,100,99]
score.append(50)

print('스택',score)
print('스택',score.pop())
print('스택',score)

 

 

문자열검색

.index(값) - 지정한 값을 찾아 해당 요소의 인덱스를 리턴, 없으면 예외 발생
.count(값) - 지정한 값이 리스트에 몇번나오는지 계산한 값을 리턴

 

score = [88,95,70,100,99,88,78,50]

perfect = score.index(100)
print("만점 받은 학생은 %d번 입니디."%perfect)

pernum = score.count(100)
print("만점자 수는 %d명입니다."%pernum)

 

 

리스트 검색


len(시퀀스) - 길이
max(시퀀스) -최대값
min(시퀀스) -최소값

 

 

 

def main():
    names = ["홍길동","고길동","둘리","또치"]
    scores = [90,80,50,30]

    name = input("검색 이름: ")
    if name in names:
        ix = names.index(name)
        score = scores[ix]
        print(f'{name}의 성적 : {score}')
    else:
        print(f'{name}은 없는 학생입니다.')

main()

 

리스트 정렬


.sort 리스트 정렬
.reverse - 리스트의 순서를 역으로 바꿈
sorted - 정렬하여 새로운 리스트로 리턴

score = [88,95,70,100,99]

score.sort()
print(score)

score.reverse()
print(score)
def main():
    country = ["korea","japan","china","america"]
    #country = [c.lower() for c in country]
    #print(country)

    country.sort()
    print(country)

    country.sort(key=str.lower)
    print(country)

    country = ["south korea","japan","china","america"]
    country.sort(reverse=True,key = len)
    print(country)


main()
score = [88,95,70,100,99]
sorted_score = sorted(score)

print(score)
print(sorted_score)

print("===다른 예제===")

score = [88,95,70,100,99]
sorted_score = sorted(score,reverse=True)

print(score)
print(sorted_score)