파이썬 목록을 포함하는 알고리즘
9956 단어 Python
그러면 파이톤을 사용할 때 목록에 패키지 표시가 나타나면 처음에는 곤혹스러울 수 있습니다.
하지만 두려울 게 없어요.자세히 보면 그것은 단지 눈에 익은 삽입문일 뿐이다.
목록 내용
목록은 for
문장을 사용하거나 if
조건만 열거할 때 사용하는 기술을 포함합니다.
예를 들어 짝수만 배열하고 싶다면 똑똑한 방법Numpy
arange()
일 수도 있지만 이러면 받아들일 수 없는 유형list
이다.
순수한 파이톤으로만 이걸 묘사하면 지능수준이 확 떨어져요even_numbers = []
for i in range(10):
if i % 2 == 0:
even_numbers.append(i)
그렇겠지.그러나 사람은 학습 능력이 있다.파이썬 특유의 목록에 표시된 존재를 발견할 수 있습니다.even_numbers = [number for number in range(10) if number % 2 == 0]
한 줄.
Swift에도 세 가지 산수 같은 게 있는데, 파이톤이 센 곳은 여기서부터 시작된다.
예를 들어 이중for
문years = [2016, 2017, 2018, 2019]
months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
calendar = []
for year in years:
for month in months:
calendar.append(f'{year}年{month}月')
리스트를 포함한다면.calendar = [f'{year}年{month}月' for year in years for month in months]
이렇게 한 줄이면 쓸 수 있다.
먼저 쓴 것append()
만 다르지만 동태적인 유형의 언어이기 때문에 성립된 것이다.
목록을 포함하는 알고리즘
그럼 본론으로 들어갑시다.
우선 이런 데이터를 구상해 보자.
설명을 간단하게 하기 위해서 원래 같은 것이 여러 개 있었다key
를 상상해 보세요.
이거를 json으로 표현하면 이런 느낌이에요.users = {1: {1: "jiro", 2: "goro"}, 2: "aya"}
또한, 검색"goro"
에 해당하는value
의 경우 꺼내려는 것이 여러 개"goro"
라고 가정하면 다음과 같다for
문으로 기술한다.user = []
for a, b in users.items():
if a == 1:
for c, d in b.items():
if c == 2:
user.append(d)
단문자 변수라 읽기 어렵지만 추상화된 것이니 탓하지 마세요.
이렇게 되면 사람들의 인식에 따라 위쪽for
부터 순서대로 "goro"
까지 도착한다.
목록에 포함된 방식으로 기술하려면user = [d for a, b in users.items() if a == 1 for c, d in b.items() if c == 2]
.정말 뒤쪽이나 뒤쪽일 뿐이야.
다른 기사에서
바깥쪽append()
문장을 뒤에 쓰다
이런 표시는 자주 볼 수 있지만, 이것은 매우 위험하다.
왜냐하면 마지막 목록의 내용도 for
문에서 같은 순서로 검색되기 때문이다.
특히 이번처럼 순환하고자 하는 변수가 위에서 아래로 끼워 넣는 것은 기술 순서가 바뀌면 정의 전에 변화가 생겼을 가능성이 크다.
이걸 리스트에 적으면...user = [d for c, d in b.items() if c == 2 for a, b in users.items() if a == 1]
당연히 이런 실수가 있죠.'str' object has no attribute 'items'
이 경우 데이터 깊이가 일치하지 않아 검색할 수 없는 오류가 되돌아옵니다.
하지만 이렇게 깊이를 조절해도users = {1: {1: "jiro", 2: "goro"}, 2: {1: "aya"}}
깊이 검색을 거슬러 올라가려면 정의되지 않은 오류가 발생합니다.b is not defined
따라서 공식 문서에 기재된 바와 같이 리스트 패키지는 일반적인 for문과 같은 순서로for
만 시작하는 느낌으로 쓰라는 뜻이다.
어쨌든 후치append()
문이죠.
총결산
목록에는 일반적인for
문장을 나타내는 알고리즘과 차이가 없다는 뜻이다.
리스트에 속도가 빠르다는 것은 처음부터 변수에 포함되기 때문이라고 하니 for
라고 할 필요가 없겠지.
Reference
이 문제에 관하여(파이썬 목록을 포함하는 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masatojames/items/7f320ab3485ae93e1823
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
even_numbers = []
for i in range(10):
if i % 2 == 0:
even_numbers.append(i)
even_numbers = [number for number in range(10) if number % 2 == 0]
years = [2016, 2017, 2018, 2019]
months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
calendar = []
for year in years:
for month in months:
calendar.append(f'{year}年{month}月')
calendar = [f'{year}年{month}月' for year in years for month in months]
그럼 본론으로 들어갑시다.
우선 이런 데이터를 구상해 보자.
설명을 간단하게 하기 위해서 원래 같은 것이 여러 개 있었다
key
를 상상해 보세요.이거를 json으로 표현하면 이런 느낌이에요.
users = {1: {1: "jiro", 2: "goro"}, 2: "aya"}
또한, 검색"goro"
에 해당하는value
의 경우 꺼내려는 것이 여러 개"goro"
라고 가정하면 다음과 같다for
문으로 기술한다.user = []
for a, b in users.items():
if a == 1:
for c, d in b.items():
if c == 2:
user.append(d)
단문자 변수라 읽기 어렵지만 추상화된 것이니 탓하지 마세요.이렇게 되면 사람들의 인식에 따라 위쪽
for
부터 순서대로 "goro"
까지 도착한다.목록에 포함된 방식으로 기술하려면
user = [d for a, b in users.items() if a == 1 for c, d in b.items() if c == 2]
.정말 뒤쪽이나 뒤쪽일 뿐이야.다른 기사에서
바깥쪽
append()
문장을 뒤에 쓰다이런 표시는 자주 볼 수 있지만, 이것은 매우 위험하다.
왜냐하면 마지막 목록의 내용도
for
문에서 같은 순서로 검색되기 때문이다.특히 이번처럼 순환하고자 하는 변수가 위에서 아래로 끼워 넣는 것은 기술 순서가 바뀌면 정의 전에 변화가 생겼을 가능성이 크다.
이걸 리스트에 적으면...
user = [d for c, d in b.items() if c == 2 for a, b in users.items() if a == 1]
당연히 이런 실수가 있죠.'str' object has no attribute 'items'
이 경우 데이터 깊이가 일치하지 않아 검색할 수 없는 오류가 되돌아옵니다.하지만 이렇게 깊이를 조절해도
users = {1: {1: "jiro", 2: "goro"}, 2: {1: "aya"}}
깊이 검색을 거슬러 올라가려면 정의되지 않은 오류가 발생합니다.b is not defined
따라서 공식 문서에 기재된 바와 같이 리스트 패키지는 일반적인 for문과 같은 순서로
for
만 시작하는 느낌으로 쓰라는 뜻이다.어쨌든 후치
append()
문이죠.총결산
목록에는 일반적인for
문장을 나타내는 알고리즘과 차이가 없다는 뜻이다.
리스트에 속도가 빠르다는 것은 처음부터 변수에 포함되기 때문이라고 하니 for
라고 할 필요가 없겠지.
Reference
이 문제에 관하여(파이썬 목록을 포함하는 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masatojames/items/7f320ab3485ae93e1823
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(파이썬 목록을 포함하는 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masatojames/items/7f320ab3485ae93e1823텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)