[파이썬 학습] 리스트와 튜플

머리말

처음 4일 동안 Xiaobai의 기본 튜토리얼이 매일 업데이트되었습니다.

오늘 업데이트하자 조금 더 깊은 지식을 얻자

여전히 오래된 속담입니다: 파이썬을 처음 접하는 Baozi는 기사 끝에 있는 명함을 클릭하여 소통하고 배울 수 있습니다.

리스트와 튜플이란?

목록은 동적이며 길이가 고정되어 있지 않으며 마음대로 추가, 삭제 또는 변경할 수 있습니다.

튜플은 정적이며 길이가 고정되어 있으며 추가, 삭제 또는 변경할 수 없습니다.

목록 및 함수 정의

l = [1, 2, 'hello', 'world'] # 列表中同时含有 int 和 string 类型的元素
l
[1, 2, 'hello', 'world']

tup = ('jason', 22) # 元组中同时含有 int 和 string 类型的元素
tup
('jason', 22)

목록의 경우 동적이므로 목록 끝에 추가하면 됩니다.

튜플의 경우 실제로 새 튜플이 생성된 다음 원래 두 튜플의 값이 순서대로 채워집니다.

tup = (1, 2, 3, 4)
new_tup = tup + (5, ) # 创建新的元组 new_tup,并依次填充原元组的值
new _tup
(1, 2, 3, 4, 5)

l = [1, 2, 3, 4]
l.append(5) # 添加元素 5 到原列表的末尾
l
[1, 2, 3, 4, 5]

Python의 목록과 튜플은 모두 음수 인덱스를 지원하고 목록과 튜플은 슬라이스 작업을 지원합니다.

l = [1, 2, 3, 4]
l[-1]
4

tup = (1, 2, 3, 4)
tup[-1]
4


list = [1, 2, 3, 4]
l[1:3] # 返回列表中索引从 1 到 2 的子列表
[2, 3]

tup = (1, 2, 3, 4)
tup[1:3] # 返回元组中索引从 1 到 2 的子元组
(2, 3) 

리스트와 튜플을 위한 일반적인 내장 함수

l = [3, 2, 3, 7, 8, 1]
l.count(3) 
2
l.index(7)
3
l.reverse()
l
[1, 8, 7, 3, 2, 3]
l.sort()
l
[1, 2, 3, 3, 7, 8]

tup = (3, 2, 3, 7, 8, 1)
tup.count(3)
2
tup.index(7)
3
list(reversed(tup))
[1, 8, 7, 3, 2, 3]
sorted(tup)
[1, 2, 3, 3, 7, 8]

목록 및 튜플 저장소

l = []
l.__sizeof__() // 空列表的存储空间为 40 字节
40
l.append(1)
l.__sizeof__() 
72 // 加入了元素 1 之后,列表为其分配了可以存储 4 个元素的空间 (72 - 40)/8 = 4
l.append(2) 
l.__sizeof__()
72 // 由于之前分配了空间,所以加入元素 2,列表空间不变
l.append(3)
l.__sizeof__() 
72 // 同上
l.append(4)
l.__sizeof__() 
72 // 同上
l.append(5)
l.__sizeof__() 
104 // 加入元素 5 之后,列表的空间不足,所以又额外分配了可以存储 4 个元素的空间

튜플은 목록보다 5배 빠르게 초기화됩니다.

python3 -m timeit 'x=(1,2,3,4,5,6)'
20000000 loops, best of 5: 9.97 nsec per loop
python3 -m timeit 'x=[1,2,3,4,5,6]'
5000000 loops, best of 5: 50.1 nsec per loop

따라서 저장된 데이터와 수량이 동일하게 유지되면 튜플을 선택하십시오.

저장된 데이터나 양이 가변적일 경우 목록 선택

다음은 목록을 만드는 두 가지 방법으로 초기화와 실행이 더 빠릅니다.


# 创建空列表
# option A
empty_list = list()

# option B
empty_list = []

테스트 결과에 따르면 튜플을 직접 생성하는 초기화 속도는 가장 빠르지만 리스트 기능을 이용해 전환해야 하기 때문에 리스트를 직접 생성하는 것만큼 빠르지는 않다.

Guess you like

Origin blog.csdn.net/yxczsz/article/details/128661602