제로베이스 데이터 취업 스쿨 2주차 스터디노트 4호
둘 다 paramter가 start, end, stop이고 end 미포함이다.
엄밀히 말하면 다르긴 한데 (slice는 step에 0을 사용하는게 가능)
그다지 중요한 정보는 아닌듯?
가장 주요 차이점은 find는 list에서 사용할 수 없다.
string에서 뭔가 찾는 것은 실무에서 드물지 않나?
if x in list_data:
list_data.index(x)
이 구문이 제일 유용하지 않나 싶다.
또, 하나는 찾는 element가 없을 때 에러 발생 여부인데,
list 사용 가능 여부에 묻히는 듯...
리스트, 튜플 <=> 딕셔너리
변환이 어떻게 될까 궁금해서 확인해봤다.
from random import randint
x = [[randint(1, 10) for i in range(2)] for j in range(10)]
y = ([randint(1, 10) for i in range(2)] for j in range(10))
z = [(randint(1, 10) for i in range(2)) for j in range(10)]
w = ((randint(1, 10) for i in range(2)) for j in range(10))
result = []
for seq in x, y, z, w:
result.append(dict(seq))
for seq in result: # value가 남지 않고 key가 남음
print(seq)
print(list(seq))
print(tuple(seq))
참고로, 변경 후 키값이 중복되는 경우는
기존 데이터 index 상 뒤에 있는 값으로 덮어씌워진다
y = [[1, 1], [1, 2]]
print(dict(y)) # {1: 2}
딕셔너리에서 pop을 사용할 때에는,
argument로 key를 주고 value를 리턴으로 받는다.
x = {2: 6, 9: 8, 7: 1, 3: 3, 10: 1, 1: 9}
value = x.pop(2)
print(value) # 6
딕셔너리에서 in 구문을 쓰면 key값으로 판단을 한다.
x = { "a": 1, "b": 2 }
print("a" in x) # True
print(2 in x) # False