Python-д өөрчлөгддөггүй (өөрчлөгддөггүй) дарааллын объектууд болох Tuples.
Ганц элемент эсвэл хоосон tuples бүхий tuple үүсгэхдээ болгоомжтой хандах хэрэгтэй.
Дараах дэлгэрэнгүй мэдээллийг энд тайлбарласан болно.
- 1 элементтэй хавтас
- Дугуй хэлбэртэй хаалтуудыг орхигдуулж болно.
- Хоосон багц
- Функцийн аргументууд дахь залгуурууд
1 элементтэй хавтас
Хэрэв та нэг элемент бүхий tuple үүсгэж, дугуй хаалт () дотор зөвхөн нэг объект бичихийг оролдвол дугуй хаалт () нь үл тоомсорлож, боловсруулагдах бөгөөд tuple гэж үзэхгүй.
single_tuple_error = (0)
print(single_tuple_error)
print(type(single_tuple_error))
# 0
# <class 'int'>
Нэг элемент бүхий залгуур үүсгэхийн тулд арын таслал шаардлагатай.
single_tuple = (0, )
print(single_tuple)
print(type(single_tuple))
# (0,)
# <class 'tuple'>
Жишээлбэл, + операторыг ашиглан олон тооны хэлхээг холбохдоо нэг элемент нэмэхийг оролдоод таслалыг мартвал алдаа гарах болно гэдгийг анхаарна уу.
# print((0, 1, 2) + (3))
# TypeError: can only concatenate tuple (not "int") to tuple
print((0, 1, 2) + (3, ))
# (0, 1, 2, 3)
Дугуй хэлбэртэй хаалтуудыг орхигдуулж болно.
Яагаад нэг элементтэй tuple-д таслал хэрэгтэй байгаагийн шалтгаан нь багц нь дугуй хаалтанд () орсон утга биш харин таслалаар тусгаарлагдсан утга юм.
Энэ нь дугуй хаалт биш харин таслал үүсгэдэг.
Tuples — Built-in Types — Python 3.10.4 Documentation
Дугуй хаалт () орхигдуулсан ч гэсэн үүнийг tuple хэлбэрээр боловсруулдаг.
t = 0, 1, 2
print(t)
print(type(t))
# (0, 1, 2)
# <class 'tuple'>
Объектийн ард тавигдах шаардлагагүй таслалыг дэгжин тэмдэг гэж үзнэ гэдгийг анхаарна уу.
t_ = 0,
print(t_)
print(type(t_))
# (0,)
# <class 'tuple'>
Хоосон багц
Дээр дурьдсанчлан дугуй хаалт ()-ыг тайзыг төлөөлөхдөө орхигдуулж болох боловч хоосон залгуур үүсгэх үед шаардлагатай.
Зөвхөн хоосон зай эсвэл таслал нь SyntaxError-ийг үүсгэнэ.
empty_tuple = ()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
# empty_tuple_error =
# SyntaxError: invalid syntax
# empty_tuple_error = ,
# SyntaxError: invalid syntax
# empty_tuple_error = (,)
# SyntaxError: invalid syntax
Хоосон tuple-ийг tuple()-аар ямар ч аргументгүйгээр үүсгэж болно.
empty_tuple = tuple()
print(empty_tuple)
print(type(empty_tuple))
# ()
# <class 'tuple'>
Функцийн аргументууд дахь залгуурууд
Синтаксийн тодорхой бус байдал гарсан ч гэсэн дугуй хаалт () шаардлагатай.
Функцийн аргументууд нь таслалаар тусгаарлагдах боловч энэ тохиолдолд дугуй хаалт () байгаа эсэхээс хамааран функц нь залгуур мөн эсэхийг тодорхой зааж өгөх шаардлагатай.
Хаалтгүйгээр () утга бүрийг аргумент бүрт дамжуулна; () хаалтанд утга бүрийг нэг аргумент руу залгах хэлбэрээр дамжуулна.
def example(a, b):
print(a, type(a))
print(b, type(b))
example(0, 1)
# 0 <class 'int'>
# 1 <class 'int'>
# example((0, 1))
# TypeError: example() missing 1 required positional argument: 'b'
example((0, 1), 2)
# (0, 1) <class 'tuple'>
# 2 <class 'int'>
Хэрэв түүвэр нь одоор * тэмдэглэгдсэн бол уг хэлхээний элементүүдийг өргөтгөж аргумент болгон дамжуулж болно.
example(*(0, 1))
# 0 <class 'int'>
# 1 <class 'int'>
Дэлгэрэнгүй мэдээллийг дараах нийтлэлээс үзнэ үү.