IT&컴퓨터/프로그래밍
파이썬 - 2차원 리스트안에서 필요한 정보 한줄로 찾기
백단z
2021. 11. 29. 23:31
2차원 리스트안에서 필요한 정보 한줄로 찾기
아래와 같이 a는 2차원 리스트이다.
이녀석들중에 첫번째 값이 10인 리스트들을 찾아내어 보자.
2차원 구조:
a = [[10, 20], [30, 40], [10, 60]]
여러줄로 찾기
find = []
for i in a:
if i[0] == 10:
find.append(i)
print(find)
output : [[10, 20], [10, 60]]
한줄로 찾기
find = [i for i in a if i[0] == 10]
print(find)
output : [[10, 20], [10, 60]]
한줄로 찾을때는 타겟을 더 세밀하게 지정할 수 있다.
찾았던 리스트의 첫번째 녀석들을 골라낼지, 두번째 녀석들을 골라낼지 선택
find = [i for i in a if i[0] == 10][0]
print(find)
output : [10, 20]
find = [i for i in a if i[0] == 10][1]
print(find)
output : [10, 60]
좀 더 세밀하게 골라낸 녀석들중에서도 몇번째 녀석을 보고싶은지 지정
find = [i for i in a if i[0] == 10][0][0]
print(find)
output : 10
배웠으니 써먹어 보자.
아래는 업비트의 자산정보를 조회하는 api를 이용해 받아온 결과값이다.
(upbitpy 모듈의 get_accounts())
(Balance랑 avg_buy_price는 숫자를 임의 조작했습니다)
[{'currency': 'KRW', 'balance': '10000.00000000', 'locked': '0.0', 'avg_buy_price': '0', 'avg_buy_price_modified': True, 'unit_currency': 'KRW'},
{'currency': 'USDT', 'balance': '1', 'locked': '0.0', 'avg_buy_price': '1141.8872', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'},
{'currency': 'EOS', 'balance': '10.00000000', 'locked': '0.0', 'avg_buy_price': '10', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}]
딕셔너리로 구성된 2차원 리스트이고, 보고싶은것은 원화 보유금액(KRW-Balance)이라면 아래와같이 한줄로 찾을 수 있다.
check_account = upbit.get_accounts()
my_KRW = [p for p in check_account if p['currency'] =='KRW'][0]['balance']
print(my_KRW)
output : 10000
반응형