>  기사  >  백엔드 개발  >  Python 프로그래밍 마스터를 위해 작성된 데이터 구조

Python 프로그래밍 마스터를 위해 작성된 데이터 구조

coldplay.xixi
coldplay.xixi앞으로
2020-11-04 17:13:541731검색

python 동영상 튜토리얼 칼럼에서는 Python 프로그래밍에서 주의해야 할 핵심 사항을 소개합니다.

Python 프로그래밍 마스터를 위해 작성된 데이터 구조

목록, 사전, 집합의 조건에 따라 데이터를 필터링하는 방법

사례: 다음 목록 데이터에서 0보다 큰 숫자를 필터링하는 방법

data = [1, -1, 2, 3, 4, 7]复制代码

필터 함수를 사용하세요. 첫 번째 매개변수는 함수입니다. , 다음 코드와 같은 람다 식을 전달할 수도 있습니다.

list(filter(lambda x: x >= 0, data))复制代码

또 다른 해결책은 다음과 같이 목록 생성을 사용하는 것입니다. 이 솔루션은 이전 솔루션보다 더 효율적입니다.

print([x for x in data if x >= 0])复制代码

사전과 같은 데이터 구조에서도 유사한 사전 제작을 사용할 수 있습니다.

from random import randint
d = { x: randint(60, 100) for x in range(1, 21)}
{k:v for k, v in d.items() if v >= 90}复制代码

프로그램 가독성을 높이기 위해 튜플의 각 요소에 이름을 지정하는 방법

계획: 상수를 정의하고 상수를 사용하여 튜플의 요소를 색인화합니다(예: 다음 코드)

stu = ('hao', 18, 'male', '1078244513@qq.com')
NAME = 0AGE = 1SEX = 2print(stu[SEX])复制代码

계획: 컬렉션 패키지의 명명된 튜플 함수를 사용합니다. 함수는 새로운 "클래스"의 정의를 반환하며 다음과 같이 사용됩니다.

from  collections import  namedtuple
Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com')

print(stu.email)复制代码

순서에서 요소의 발생 빈도를 계산하는 방법

질문: 다음 숫자 목록에 각 숫자가 나타나는 횟수를 계산하세요.

from random import randint
data = [randint(0, 20) for _ in range(30)]复制代码

계획: dict(사전)를 정의한 다음 배열을 순회하세요.

c = dict.fromkeys(data, 0)复制代码

위 코드는 데이터의 다양한 값을 키로, 0을 값으로 사용하여 사전 개체를 생성합니다.

for x in data:
    c[x] += 1复制代码

해결 방법: 컬렉션 패키지의 카운터 기능을 사용하세요.

c2 = Counter(data)复制代码

이 솔루션을 사용하면 가장 많이 나타나는 상위 몇 가지 항목도 쉽게 얻을 수 있습니다.

c2.most_common(3)复制代码

사전에 있는 값의 크기에 따라 사전에 있는 항목을 정렬하는 방법

질문: 다음 사전에 있는 값을 정렬하세요

cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码

해결: 정렬 함수의 두 번째 매개변수 함수 객체에 전달될 수 있으며, sorted는 함수의 반환 값에 따라 정렬됩니다.

sorted(cj.items(), key=lambda item:item[1])复制代码

참고: 이 함수는 새로운 사전 객체를 반환합니다

여러 사전에서 공통 키(키)를 빠르게 찾는 방법은 무엇인가요?

먼저, Random 패키지에 있는 Python의 샘플링 함수 샘플을 소개하겠습니다. 이는 시퀀스 유형 매개변수와 숫자를 사용하고 시퀀스에서 무작위로 샘플링된 시퀀스를 반환합니다. 다음 코드.

from random import sample
sample('abcdefg', 3)复制代码

질문: 다음 세 가지 컬렉션의 공통 키를 얻는 방법.

s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}复制代码

이 작업은 집합의 교집합 연산을 사용하여 수행할 수 있습니다.

s1.keys() & s2.keys() & s3.keys()复制代码

사전을 정리하는 방법은?

컬렉션 패키지의 OrderedDict 유형은 사전에 들어가는 순서를 유지합니다.

관련 무료 학습 권장사항: python 비디오 튜토리얼

위 내용은 Python 프로그래밍 마스터를 위해 작성된 데이터 구조의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제