>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2
তারা উভয় বৈধ? কোনও কারণে কোনওটি পছন্দ হয়?
>>> x=[1,2]
>>> x[1]
2
>>> x=(1,2)
>>> x[1]
2
তারা উভয় বৈধ? কোনও কারণে কোনওটি পছন্দ হয়?
উত্তর:
স্কয়ার বন্ধনীগুলি তালিকাগুলি হয় যখন বন্ধনীগুলি টিপলস হয় ।
একটি তালিকা পরিবর্তনীয়, যার অর্থ আপনি এর সামগ্রীগুলি পরিবর্তন করতে পারেন:
>>> x = [1,2]
>>> x.append(3)
>>> x
[1, 2, 3]
যখন টিপলস হয় না:
>>> x = (1,2)
>>> x
(1, 2)
>>> x.append(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
অন্যান্য প্রধান পার্থক্য হ'ল একটি টিপল হ্যাশেবল, যার অর্থ আপনি এটি অন্যান্য বিষয়ের মধ্যে অভিধানের কী হিসাবে ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:
>>> x = (1,2)
>>> y = [1,2]
>>> z = {}
>>> z[x] = 3
>>> z
{(1, 2): 3}
>>> z[y] = 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
মনে রাখবেন যে, অনেকে যেমন নির্দেশ করেছেন, আপনি একসাথে টিপল যোগ করতে পারেন। উদাহরণ স্বরূপ:
>>> x = (1,2)
>>> x += (3,)
>>> x
(1, 2, 3)
তবে এর অর্থ এই নয় যে টিপলগুলি পরিবর্তনযোগ্য । উপরের উদাহরণে, দুটি টিপলকে যুক্তি হিসাবে যুক্ত করে একটি নতুন টুপল নির্মিত হয়। মূল টিপলটি সংশোধন করা হয়নি। এটি প্রদর্শনের জন্য নিম্নলিখিতগুলি বিবেচনা করুন:
>>> x = (1,2)
>>> y = x
>>> x += (3,)
>>> x
(1, 2, 3)
>>> y
(1, 2)
অন্যদিকে, যদি আপনি একটি তালিকা সহ একই উদাহরণটি তৈরি করেন y
তবে এটি আপডেট করা হবে:
>>> x = [1, 2]
>>> y = x
>>> x += [3]
>>> x
[1, 2, 3]
>>> y
[1, 2, 3]
একটি আকর্ষণীয় পার্থক্য:
lst=[1]
print lst // prints [1]
print type(lst) // prints <type 'list'>
notATuple=(1)
print notATuple // prints 1
print type(notATuple) // prints <type 'int'>
^^ instead of tuple(expected)
একটি কমাতে অবশ্যই একটি টিউলে অন্তর্ভুক্ত করা উচিত যদিও এতে কেবলমাত্র একক মান থাকে। যেমন (1,)
পরিবর্তে (1)
।
তারা তালিকাগুলি নয়, তারা একটি তালিকা এবং একটি টিপল। পাইথন টিউটোরিয়ালে টিপলস সম্পর্কে পড়তে পারেন । আপনি তালিকাগুলি পরিবর্তন করতে পারেন, তবে টিপলস দিয়ে এটি সম্ভব নয়।
In [1]: x = (1, 2)
In [2]: x[0] = 3
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/user/<ipython console> in <module>()
TypeError: 'tuple' object does not support item assignment
বন্ধনী এবং প্রথম বন্ধনী পৃথক করার অন্য উপায়টি হল বর্গাকার বন্ধনীগুলি তালিকা অনুধাবনকে বর্ণনা করতে পারে, যেমন [x for x in y]
যদিও সম্পর্কিত প্যারেন্টিস্টিক সিনট্যাক্স একটি টুপল জেনারেটর নির্দিষ্ট করে :(x for x in y)
আপনি ব্যবহার করে একটি দ্বৈত বোধগম্যতা পেতে পারেন: tuple(x for x in y)
দেখুন: পাইথনে টুপল বোঝা নেই কেন?
প্রথমটি একটি তালিকা, দ্বিতীয়টি একটি টিপল। তালিকাগুলি পরিবর্তনযোগ্য, টিপলস নয়।
কটাক্ষপাত ডেটা কাঠামো টিউটোরিয়ালের অধ্যায়, এবং সিকোয়েন্স প্রকারভেদ নথিপত্রের অধ্যায়।
কমা দ্বারা পৃথকীকৃত দ্বারা ঘিরা আইটেম (
এবং )
হয় tuple
এস, তাদের দ্বারা ঘিরা [
এবং ]
হয় list
গুলি।
:P
(
এবং )
হয় tuple
এস, দ্বারা ঘিরা যারা [
এবং ]
হয় list
গুলি।"
(i for i in ...)
এবং[i for i in ...]
।