제로 기반 학습 Python|Python 고급 학습 다섯 번째 날

​ 저자 홈페이지 : 프로그래밍 콤파스

저자 소개: Java 분야의 고급 크리에이터, CSDN 블로그 전문가
, CSDN 콘텐츠 파트너, Nuggets 초대 작성자, Alibaba Cloud 블로그 전문가, 51CTO 초대 작성자, 다년간의 건축가 디자인 경험, Tencent 강의실 상주 강사

주요 내용 : Java 프로젝트, Python 프로젝트, 프론트 엔드 프로젝트, 인공 지능 및 빅 데이터, 이력서 템플릿, 학습 자료, 면접 문제 은행, 기술 상호 지원

즐겨찾기, 좋아요, 헤매지 마세요 작가님을 팔로우하면 좋아요

기사 끝 부분에서 소스 코드를 얻으십시오.

1. 사전

사전은 목록과 유사하며 가변 시퀀스이지만 순서가 없고 키-값 쌍의 형태로 데이터를 저장합니다. 이는 Java의 Map 컬렉션과 유사합니다.

사전의 키는 고유하고 불변입니다. 숫자, 문자열 또는 튜플을 키로 사용할 수 있지만 목록은 키로 사용할 수 없습니다.

1.1 사전 생성 및 삭제

사전 생성을 위한 기본 구문:

dictionary = {
    
    'key':value,'key1':value1,....'keyn':valuen}

빈 사전 생성:

dictionary = {
    
    }
dictionary = dict()

빈 사전을 만드는 것 외에도 dict() 함수는 기존 데이터에서 사전을 빠르게 만들 수도 있습니다. 주로 두 가지 형태가 있습니다.

1. 매핑 기능을 통해 사전 테이블 생성

dictionary = dict(zip(list1,list2))
* dictionary 为字典名
* zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以使用tuple()函数将zip对象转换为元组;如果想得到列表,则可以使用list()函数将其转换为列表。
* list1:一个列表,用于指定要生成字典的键
* list2:一个列表,用于指定要生成字典的值
* 返回值:如果list1和list2长度不同,则与最短的列表长度相同

예:

#示例1  通过dict()进行字典创建
name = ['马丽','沈腾','岳云鹏']  #作为键的列表
sign = ['喜剧','小品','相声'] #作为值的列表
dictionary = dict(zip(name,sign)) #转换为字典
print(dictionary)

2. 주어진 키-값 쌍으로 사전을 생성합니다.

dictionary = dict(key1=value1,key2=value2,...keyn=valuen)
* dictionary 为字典名
* key1、key2...keyn:表示元素的键,必须是唯一的,并且不可变,可以是字符串、数字或元组。
* value1、value2..valuen:表示元素的值,可以是任何数据类型,不是必须唯一。

예:

dictionary = dict(邓肯='石佛',吉诺比利='妖刀',帕克='跑车')
print(dictionary)

이 식사는 dict 객체의 fromkeys 메소드를 통해 빈 사전을 생성할 수도 있습니다:

dictionary = dict.fromkeys(list1)
* dictionary 表示字典名称
* list1 作为字典的键的列表

예:

name_list =['邓肯','吉诺比利','帕克']
dictionary = dict.fromkeys(name_list)
print(dictionary)

또는 기존 튜플과 목록에서 사전을 만들 수 있습니다.

name_tuple =('邓肯','吉诺比利','帕克')
sign = ['石佛','妖刀','跑车']
dict1 = {name_tuple:sign}
print(dict1)

생각하기: 위의 ​​예가 반대라면 리스트를 키로, 튜플을 값으로 사용하는 것이 가능할까요?

사전 삭제:

del dictionary

빈 사전: 사전 요소를 빈 사전으로 비웁니다.

dictionary.clear()

1.2 키-값 쌍을 통해 사전에 접근하기

dictionary = {'邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
print(dictionary['帕克'])

이런 방식으로 KEY가 존재하지 않으면 예외가 보고됩니다.

다음을 판단하여 해결할 수 있습니다.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
if '帕克' in list(dictionary.keys()):
   print(dictionary['帕克'])
else:
   print('查无此人')

Python에서는 이러한 문제를 해결하기 위해 get 메소드를 권장합니다:

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
print(dictionary.get('帕克','查无此人'))

1.3 사전 탐색

사전의 items() 메서드를 통해 사전의 모든 키-값 쌍을 가져온 다음 주기적으로 추출할 수 있습니다.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for item in dictionary.items():
   print(item)

각 키-값 쌍의 KEY 및 VALUE를 더 자세히 가져오려면 다음을 수행하세요.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for key,value in dictionary.items():
   print(key,'绰号是',value)

사전 객체는 또한 사전의 값과 키를 가져오기 위해 값()과 키()를 제공한 다음 탐색하여 다음을 얻습니다.

dictionary = {'邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for key in dictionary.keys():
    print('key:',key)
    print('value:',dictionary.get(key,'查无此人'))
dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
for value in dictionary.values():
   print(value)

1.4 요소 추가, 수정, 삭제

사전은 변경 가능한 시퀀스이므로 필요에 따라 언제든지 '키-값 쌍'을 추가할 수 있습니다.

dictionary[key]=value

예:

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
dictionary['乔丹']='飞人'
print(dictionary)

기존 키 값을 수정할 수 있습니다. 키는 고유하며 추가된 값이 이전 값을 덮어씁니다.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
dictionary['邓肯']='大佛'
print(dictionary)

del을 사용하여 키 값을 삭제할 수 있습니다.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
del dictionary['邓肯']
print(dictionary)

존재하지 않는 키 값을 삭제하면 오류가 보고되며 처리 여부를 판단할 수 있습니다.

dictionary = {
    
    '邓肯':'石佛','吉诺比利':'妖刀','帕克':'跑车'}
if '邓肯' in dictionary:
   del dictionary['邓肯']
print(dictionary)

1.5 사전 이해

사전 이해를 사용하여 사전을 빠르게 생성하세요.

import random
randomdict = {
    
    i:random.randint(10,100) for i in range(1,5)}
print('生成的字典为:',randomdict)

산출:

生成的字典为: {1: 39, 2: 49, 3: 74, 4: 43}

둘, 컬렉션

세트는 무겁지 않은 요소를 저장하는 데 사용되며 순서가 지정되지 않으며 변수 세트(set)와 불변 세트(frozenset)의 두 가지 유형이 있습니다. 이번에는 세트에 대해서만 이야기하는데 실제로는 Java의 세트와 매우 유사합니다. 주요 응용 시나리오는 일련의 고유 요소 데이터를 저장하는 것입니다.

2.1 컬렉션 생성

1. { }를 직접 사용하여 다음을 생성합니다.

setname = {element1,element2,....elementn}

수집 요소 유형은 제한되지 않습니다.

set1 = {'str1','str2','str3'}
set2 = {1,2,3,4,5,6}
set3 = {'Python',30,('人生苦短','我学Python')}

2. set() 함수를 사용하여 컬렉션을 생성합니다.

setname = set(iteration)
* setname  集合名字
* iteartion 可迭代的对象,比如:列表、元组、range对象等,如果是字符串,则返回包含不重复的字符集合

예:

set1 = set('命运给我们的不是失望之酒,而是希望之杯。')
set2 = set([1.45,3.22,4,6])
set3 = set(('人生苦短','我学Python'))
print(set1)
print(set2)
print(set3)

Python에서는 컬렉션을 생성하려면 set()을 사용하는 것이 좋습니다.

빈 컬렉션을 생성하는 경우, {} 대신 set()만 사용할 수 있습니다. 왜냐하면 {}가 빈 사전을 생성하는 데 사용되기 때문입니다.

2.2 컬렉션 추가 및 삭제

컬렉션 추가:

setname.add(element)
* 添加的元素只能是数字、字符串或布称类型的True和False,不能使用列表、元组等可迭代对象

예:

set1 = {'str1','str2','str3'}
set1.add('str4')
print(set1)

컬렉션 삭제:

del을 사용하여 전체 컬렉션을 삭제하거나 pop() 및 Remove()를 사용하여 요소를 제거할 수 있습니다. Clear()를 사용하여 컬렉션을 비울 수도 있습니다.

#示例 集合的删除
set1 = {
    
    'str1','str2','str3'}
set1.remove('str3')  #移除指定的元素
set1.pop()   #移除集合左边第一个
print(set1)

2.3 집합의 교집합, 합집합, 차집합 연산

교차 연산은 두 세트의 반복되는 부분을 계산하는 데 사용되는 '&' 기호를 사용합니다.

합집합 연산은 '|'를 사용하여 두 세트의 합집합을 계산합니다(중복 제거).

차이 연산은 '-'를 사용하여 양쪽에 있는 요소를 제거합니다.

예:

set1 = {
    
    'java','python','c++'}
set2 = {
    
    'python','html','css'}
print('交集运算:',set1&set2)
print('并集运算:',set1|set2)
print('差集运算:',set1-set2)

출력 결과:

交集运算: {'python'}
并集运算: {'python', 'html', 'c++', 'java', 'css'}
差集运算: {'c++', 'java'}

지금까지 리스트, 튜플, 딕셔너리, 시퀀스 세트에 대해 설명했습니다. 차이점을 요약해 보겠습니다.

여기에 이미지 설명을 삽입하세요

추천

출처blog.csdn.net/whirlwind526/article/details/132376801