در این مطلب، ویدئو ساختارهای داده پایتون: مجموعه ها، مجموعه های منجمد و چند مجموعه (کیسه ها) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,009
سلام، این Dan است و امروز
2
00:00:02,009 –> 00:00:05,310
میخواهم در مورد ساختار دادههای مجموعه در
3
00:00:05,310 –> 00:00:06,960
پایتون صحبت کنم، اساساً در مورد
4
00:00:06,960 –> 00:00:09,780
اینکه یک مجموعه در مفهوم علوم رایانه
5
00:00:09,780 –> 00:00:13,259
چیست و چه کاری میتوانید با آن انجام دهید و
6
00:00:13,259 –> 00:00:15,540
چگونه میتوانید مجموعهها را در پایتون پیادهسازی کنید
7
00:00:15,540 –> 00:00:17,430
، صحبت خواهیم کرد. چند راه
8
00:00:17,430 –> 00:00:19,980
برای استفاده از ساختار داده مجموعه در پایتون
9
00:00:19,980 –> 00:00:22,109
وجود دارد.
10
00:00:22,109 –> 00:00:24,900
11
00:00:24,900 –> 00:00:27,119
12
00:00:27,119 –> 00:00:29,880
13
00:00:29,880 –> 00:00:30,810
14
00:00:30,810 –> 00:00:34,110
از آنچه در پایتون موجود است، بنابراین اگر
15
00:00:34,110 –> 00:00:36,180
ایده کلی چیست و سپس فقط
16
00:00:36,180 –> 00:00:37,829
به شما چند اشاره می دهم تا بتوانید
17
00:00:37,829 –> 00:00:40,739
در آن غواصی کنید و چیزهای بیشتری یاد بگیرید، بنابراین
18
00:00:40,739 –> 00:00:42,989
بیایید با یک مثال بسیار ساده شروع کنیم، بنابراین
19
00:00:42,989 –> 00:00:44,100
کاری که من در اینجا انجام خواهم داد این است که من
20
00:00:44,100 –> 00:00:46,379
یک مجموعه بسیار ساده تعریف میکنیم و سپس میتوانیم
21
00:00:46,379 –> 00:00:48,870
در مورد برخی از ویژگیهایی که یک
22
00:00:48,870 –> 00:00:51,000
مجموعه داده ساختار دارد صحبت کنیم، بنابراین کاری که من در
23
00:00:51,000 –> 00:00:52,980
اینجا انجام دادم این بود که یک شی مجموعه جدید در پایتون ایجاد کردم
24
00:00:52,980 –> 00:00:55,530
که تمام حروف صدادار را
25
00:00:55,530 –> 00:00:59,129
دقیقاً درست در هنگام کاراکترهای AE iou نگه میدارد.
26
00:00:59,129 –> 00:01:01,710
ما بررسی میکنیم که میتوانید ببینید که
27
00:01:01,710 –> 00:01:03,480
پایتون در واقع ما را کمی متفاوت چاپ میکند،
28
00:01:03,480 –> 00:01:05,820
زیرا نحوی که
29
00:01:05,820 –> 00:01:08,100
من در اینجا استفاده کردم به نوعی قدیمی است،
30
00:01:08,100 –> 00:01:10,680
در واقع خلاصهنویسی برای ایجاد
31
00:01:10,680 –> 00:01:13,170
مجموعهها وجود دارد و دقیقاً شبیه این است، بنابراین من میتوانم دقیقاً آن
32
00:01:13,170 –> 00:01:16,830
را ایجاد کنم. مجموعه مشابه
33
00:01:16,830 –> 00:01:19,890
به همان شیوه، بنابراین این نوع
34
00:01:19,890 –> 00:01:22,619
شبیه به یک فرهنگ لغت به نظر می رسد، اما تفاوت
35
00:01:22,619 –> 00:01:24,720
عبارت فرهنگ لغت در این است که شما
36
00:01:24,720 –> 00:01:26,729
ستون ها را ندارید، بنابراین یک مجموعه
37
00:01:26,729 –> 00:01:29,220
واقعاً کلیدها را به مقادیر نگاشت نمی کند، بلکه
38
00:01:29,220 –> 00:01:31,979
فقط مجموعه ای از اشیاء است که
39
00:01:31,979 –> 00:01:34,229
درست است، بنابراین اکنون ما یک شیء مجموعه ایجاد کرده
40
00:01:34,229 –> 00:01:36,060
ایم که در واقع ما را به مجموعه ای
41
00:01:36,060 –> 00:01:37,650
خاص تبدیل می کند، می دانید برای چه چیزی به آن نیاز داریم، آیا
42
00:01:37,650 –> 00:01:39,810
می توانیم فقط از یک لیست استفاده کنیم که
43
00:01:39,810 –> 00:01:42,060
از یک فرهنگ لغت استفاده کنید، بنابراین در اینجا
44
00:01:42,060 –> 00:01:44,579
تمایزات کلیدی شماره یک مجموعه است. یک
45
00:01:44,579 –> 00:01:47,220
مجموعه نامرتب از اقلام است یک لیست
46
00:01:47,220 –> 00:01:49,140
مجموعه ای مرتب شده از اقلام است، بنابراین اگر
47
00:01:49,140 –> 00:01:52,740
من این لیست را داشتم،
48
00:01:52,740 –> 00:01:56,369
بدترین انتخاب عناصر در اینجا وجود دارد، زیرا
49
00:01:56,369 –> 00:01:58,950
تایپ کردن آن بد نیست، بنابراین اگر این
50
00:01:58,950 –> 00:02:02,070
لیست را داشتم، در واقع یک سفارش برای آن وجود دارد. و
51
00:02:02,070 –> 00:02:04,590
شما دارید این افکت را در جایی که مجموعه ترتیب
52
00:02:04,590 –> 00:02:06,090
را حفظ نمی کند اما لیست
53
00:02:06,090 –> 00:02:08,128
را می بینید می توانید اینجا ببینید زیرا زمانی که
54
00:02:08,128 –> 00:02:11,129
من در ابتدا این مجموعه را ایجاد کردم می توانید
55
00:02:11,129 –> 00:02:13,950
اینجا را ببینید من یک لیست مرتب شده از L را
56
00:02:13,950 –> 00:02:16,260
به آن منتقل کردم مانند اینکه در واقع یک لیست به آن داده ام و چه
57
00:02:16,260 –> 00:02:19,440
Python دفعه دوم را تف کرد و
58
00:02:19,440 –> 00:02:20,580
ترتیب را درست برگرداند
59
00:02:20,580 –> 00:02:22,230
زیرا ترتیب در یک مجموعه مهم نیست،
60
00:02:22,230 –> 00:02:24,269
بنابراین ترتیب واقعا
61
00:02:24,269 –> 00:02:26,099
مهم نیست و این دقیقاً همان چیزی است
62
00:02:26,099 –> 00:02:29,310
که اکنون در اینجا با لیستی مشاهده می کنید، ترتیب
63
00:02:29,310 –> 00:02:31,560
به این معنی است که ترتیب در پایتون مهم است
64
00:02:31,560 –> 00:02:34,739
65
00:02:34,739 –> 00:02:36,599
ترتیب اضافه شدن اشیاء به لیست را حفظ می کند، بنابراین
66
00:02:36,599 –> 00:02:38,489
این یک تمایز کلیدی است که مجموعه ها
67
00:02:38,489 –> 00:02:40,079
لیست های نامرتب مرتب شده اند
68
00:02:40,079 –> 00:02:42,599
و تمایز دیگر این است که یک مجموعه
69
00:02:42,599 –> 00:02:46,379
اجازه عناصر تکراری را نمی دهد، بنابراین برای
70
00:02:46,379 –> 00:02:48,299
مثال به شما در اینجا کپی می کنیم. و
71
00:02:48,299 –> 00:02:50,940
این مجموعه را بچسبانید و من فقط
72
00:02:50,940 –> 00:02:52,739
میخواهم یک دسته از موارد تکراری را در اینجا ایجاد کنم، بنابراین
73
00:02:52,739 –> 00:02:55,200
شخصیت قدیمی را دو بار
74
00:02:55,200 –> 00:02:57,900
اضافه میکنم، شما را دو بار اضافه میکنم و
75
00:02:57,900 –> 00:03:01,230
یک دسته کامل از A را در اینجا اضافه میکنم.
76
00:03:01,230 –> 00:03:03,989
ارزیابی این عبارت من می توانم او را ببینم
77
00:03:03,989 –> 00:03:05,670
ما دقیقاً همان نتیجهای را میگیریم که
78
00:03:05,670 –> 00:03:08,340
در واقع قبلاً به دست آورده بودیم، بنابراین
79
00:03:08,340 –> 00:03:09,959
پایتون هنگام ایجاد یک مجموعه، تمام موارد تکراری
80
00:03:09,959 –> 00:03:11,549
را حذف میکند و این کاملاً نکته است
81
00:03:11,549 –> 00:03:13,799
درست است که یک مجموعه اجازه تکرار ندارد،
82
00:03:13,799 –> 00:03:18,209
در حالی که با یک لیست میتوانم در
83
00:03:18,209 –> 00:03:21,359
طول روز موارد تکراری ایجاد کنم. درست است که
84
00:03:21,359 –> 00:03:23,519
لیست اصلاً به موارد تکراری اهمیت نمی دهد،
85
00:03:23,519 –> 00:03:26,010
فقط به
86
00:03:26,010 –> 00:03:28,769
عناصر موجود در آن و
87
00:03:28,769 –> 00:03:30,870
ترتیب آن عناصر اهمیت می دهد بنابراین این کار به زیبایی کار می کند
88
00:03:30,870 –> 00:03:33,780
و با یک مجموعه
89
00:03:33,780 –> 00:03:36,000
عناصر تکراری را حذف می کند و فقط
90
00:03:36,000 –> 00:03:38,430
به موارد غیر تکراری می چسبد. عناصر و
91
00:03:38,430 –> 00:03:40,200
همچنین ترتیب را نادیده می گیرد، بنابراین
92
00:03:40,200 –> 00:03:42,480
تمایز کلیدی در اینجا در حال حاضر اجازه دهید
93
00:03:42,480 –> 00:03:43,829
در مورد برخی از
94
00:03:43,829 –> 00:03:46,049
ویژگی های عملکرد این مجموعه ها صحبت کنیم، بنابراین در یک
95
00:03:46,049 –> 00:03:49,349
اجرای صحیح مجموعه می
96
00:03:49,349 –> 00:03:52,079
توانید به سرعت عضویت مجموعه را آزمایش کنید،
97
00:03:52,079 –> 00:03:54,359
بنابراین اگر می خواستم برای عضویت آزمایش کنم
98
00:03:54,359 –> 00:03:58,620
در لیستی مانند این من در لیست
99
00:03:58,620 –> 00:04:00,900
مصوت ها اتفاقی که در داخل رخ می دهد این است
100
00:04:00,900 –> 00:04:03,209
که کل لیست را یکی یکی به
101
00:04:03,209 –> 00:04:05,220
درستی جستجو می کنیم تا پایتون ها به خوبی پیش بروند.
102
00:04:05,220 –> 00:04:08,310
برای من در لیست مصوت
103
00:04:08,310 –> 00:04:10,440
ها خوب است، پس بیایید فهرستی از مصوت ها را انتخاب کنیم
104
00:04:10,440 –> 00:04:12,959
و بیایید به هر عنصر به
105
00:04:12,959 –> 00:04:16,228
ترتیب نگاه کنیم و مطمئن شویم که این من هستم یا نه،
106
00:04:16,228 –> 00:04:18,298
بنابراین بسیار خوب، ما به
107
00:04:18,298 –> 00:04:20,220
چاهی نگاه می کنیم که بلند نیست و ما. دوباره
108
00:04:20,220 –> 00:04:21,570
به چاهی نگاه میکنیم که من نیستم،
109
00:04:21,570 –> 00:04:23,190
ما میخواهیم به چاهی نگاهی بیندازیم، من خوب هستم
110
00:04:23,190 –> 00:04:25,169
، من میتوانم جستجوی نصب واقعی را
111
00:04:25,169 –> 00:04:25,980
برگردانم،
112
00:04:25,980 –> 00:04:29,340
بنابراین در بدترین حالت،
113
00:04:29,340 –> 00:04:31,440
اگر عنصری را جستجو کنیم، فهرست ما در اینجا،
114
00:04:31,440 –> 00:04:33,240
در واقع باید کل را جستجو کند. لیست کنید بنابراین
115
00:04:33,240 –> 00:04:35,100
با یک لیست یک تست برای عضویت در
116
00:04:35,100 –> 00:04:36,930
بدترین حالت باید تمام
117
00:04:36,930 –> 00:04:40,140
اشیاء موجود در لیست را به ترتیب جستجو کنید و این
118
00:04:40,140 –> 00:04:43,470
می تواند بسیار کند باشد، بنابراین این در یک
119
00:04:43,470 –> 00:04:46,140
آزمون زمان خطی برای عضویت است
120
00:04:46,140 –> 00:04:47,790
که اگر بخواهید عالی نیست. بسیاری از عناصر
121
00:04:47,790 –> 00:04:49,860
در حال حاضر با پیاده سازی دارایی مناسب
122
00:04:49,860 –> 00:04:51,540
مانند اجرای مجموعه داخلی و
123
00:04:51,540 –> 00:04:52,890
پایتون، وضعیت در واقع کاملاً
124
00:04:52,890 –> 00:04:54,960
متفاوت است، بنابراین در اینجا وقتی همان
125
00:04:54,960 –> 00:04:57,750
تست عضویت را با یک شیء مجموعه مناسب انجام می
126
00:04:57,750 –> 00:04:59,850
دهم، در واقع خیلی سریعتر اتفاق می افتد، منظورم
127
00:04:59,850 –> 00:05:01,050
این است که در این مورد می دانید راستش
128
00:05:01,050 –> 00:05:02,250
خیلی مهم نیست زیرا ما فقط
129
00:05:02,250 –> 00:05:03,780
تعداد کمی از عناصر داریم و در این
130
00:05:03,780 –> 00:05:05,370
مورد ممکن است لیست در واقع سریعتر باشد،
131
00:05:05,370 –> 00:05:07,710
اما اگر تصور میکردید هزاران
132
00:05:07,710 –> 00:05:10,440
عنصر داریم، مجموعه بسیار سریعتر خواهد بود،
133
00:05:10,440 –> 00:05:12,630
زیرا یک مجموعه توسط یک فرهنگ لغت پایتون پشتیبانی میشود
134
00:05:12,630 –> 00:05:14,130
که در داخل آن یک جدول هش است.
135
00:05:14,130 –> 00:05:16,410
می تواند برای عضویت
136
00:05:16,410 –> 00:05:18,300
بسیار سریعتر آزمایش کند، بنابراین ما
137
00:05:18,300 –> 00:05:20,130
واقعاً می توانیم این کار را در زمان ثابت انجام دهیم، بنابراین
138
00:05:20,130 –> 00:05:22,470
هنگامی که مجموعه ساخته شد،
139
00:05:22,470 –> 00:05:25,980
برای ما بسیار آسان است یا بسیار سریع
140
00:05:25,980 –> 00:05:29,100
برای رایانه برای بررسی اینکه آیا یک مجموعه
141
00:05:29,100 –> 00:05:31,500
دارای یک کاراکتر خاص است یا خیر، بنابراین در این
142
00:05:31,500 –> 00:05:33,240
مورد آنچه در داخل اتفاق میافتد این است که
143
00:05:33,240 –> 00:05:35,100
پایتون در واقع
144
00:05:35,100 –> 00:05:38,700
همه این کاراکترها را جستجو نمیکند تا I یا
145
00:05:38,700 –> 00:05:41,340
مطمئن شود که I عنصری در این
146
00:05:41,340 –> 00:05:43,290
مجموعه است، اما میتواند جستجوی سریعتری انجام دهد،
147
00:05:43,290 –> 00:05:45,210
زیرا ساختار داخلی مجموعه دارد،
148
00:05:45,210 –> 00:05:47,460
بنابراین میتواند اساساً بگویید هی
149
00:05:47,460 –> 00:05:49,950
آیا شما در این در این سطل هستید یا
150
00:05:49,950 –> 00:05:51,750
در این قسمت از مجموعه هستید و
151
00:05:51,750 –> 00:05:53,700
اگر به خوبی در آنجا هستید، می دانم
152
00:05:53,700 –> 00:05:56,190
که می توانم درست برگردم و اگر نه، کار ما تمام
153
00:05:56,190 –> 00:05:57,780
شده است و من ندارم برای جستجوی بقیه
154
00:05:57,780 –> 00:05:59,520
از آن و این اساساً یک
155
00:05:59,520 –> 00:06:01,410
مبادله است که شما فضایی را مبادله میکنید، مثلاً یک
156
00:06:01,410 –> 00:06:03,030
ساختار داده مجموعهای فضای بیشتری را اشغال میکند
157
00:06:03,030 –> 00:06:05,430
نسبت به آنچه که من یک لیست مسطح انجام دادهام یا
158
00:06:05,430 –> 00:06:07,020
فقط یک ساختار داده فهرست ساده،
159
00:06:07,020 –> 00:06:10,020
اما میتواند عضویت بسیار سریعتری را فراهم کند.
160
00:06:10,020 –> 00:06:12,840
آزمایش میکند، بنابراین
161
00:06:12,840 –> 00:06:14,100
میدانید که همیشه در مورد این معاوضهها
162
00:06:14,100 –> 00:06:16,020
در مورد این
163
00:06:16,020 –> 00:06:18,030
ساختارهای دادهای است، اما این یک نوع تمایز کلیدی است،
164
00:06:18,030 –> 00:06:20,820
بنابراین مجموعهای برای انجام این تستهای عضویت بسیار سریع است و
165
00:06:20,820 –> 00:06:23,160
166
00:06:23,160 –> 00:06:25,200
اجازه تکرار را نمیدهد. یک مجموعه نامرتب،
167
00:06:25,200 –> 00:06:27,720
در حالی که لیست
168
00:06:27,720 –> 00:06:29,850
در این جنبهها به نوعی برعکس است، درست
169
00:06:29,850 –> 00:06:32,550
مرتب شده است، برای تست عضویت به نوعی کند است
170
00:06:32,550 –> 00:06:34,080
زیرا باید
171
00:06:34,080 –> 00:06:36,720
فهرست کامل را جستجو کند و به ترتیب اهمیت میدهد
172
00:06:36,720 –> 00:06:38,760
، بنابراین اینها
173
00:06:38,760 –> 00:06:40,950
تمایزات کلیدی در اینجا هستند و این چه
174
00:06:40,950 –> 00:06:44,100
چیزی یک ساختار داده مجموعه را خاص می کند، بنابراین ما
175
00:06:44,100 –> 00:06:46,260
به عبارات مجموعه ساده
176
00:06:46,260 –> 00:06:48,870
در اینجا برای ایجاد یک مجموعه نگاه کردیم و ممکن است
177
00:06:48,870 –> 00:06:50,790
به یاد داشته باشید که ممکن است
178
00:06:50,790 –> 00:06:52,710
انواع دیگری از عبارات را در پایتون شنیده باشید که
179
00:06:52,710 –> 00:06:54,180
به شما امکان می دهد این ساختارها را برای
180
00:06:54,180 –> 00:06:55,710
امتحان ایجاد کنید. ple list comprehensions و درک
181
00:06:55,710 –> 00:06:58,320
فرهنگ لغت و معلوم می
182
00:06:58,320 –> 00:07:00,360
شود که چیزی بسیار شبیه
183
00:07:00,360 –> 00:07:02,250
به مجموعه ها و پایتون نیز
184
00:07:02,250 –> 00:07:07,410
وجود دارد، بنابراین در واقع یک مجموعه درک وجود دارد
185
00:07:07,410 –> 00:07:10,710
که بسیار مشابه کار می کند یا بسیار
186
00:07:10,710 –> 00:07:13,260
شبیه به درک فرهنگ لغت است،
187
00:07:13,260 –> 00:07:15,780
بنابراین اساساً این یک روش است.
188
00:07:15,780 –> 00:07:19,650
برای بیان یک حلقه for ساده مانند یک
189
00:07:19,650 –> 00:07:23,250
خط یک خطی که یک شی مجموعه جدید را
190
00:07:23,250 –> 00:07:25,320
خیلی سریع و بسیار راحت برای
191
00:07:25,320 –> 00:07:26,880
برنامه نویس ایجاد می کند و من یک
192
00:07:26,880 –> 00:07:28,710
آموزش ویدیویی دارم که می خواهم پیوند دهم که
193
00:07:28,710 –> 00:07:29,670
کمی بیشتر در مورد نحوه این کار به شما می گوید.
194
00:07:29,670 –> 00:07:31,530
اگر قبلاً آنها را ندیدهاید، درکها کار میکنند،
195
00:07:31,530 –> 00:07:33,450
اما میدانید که
196
00:07:33,450 –> 00:07:35,670
این درکها با مجموعهها نیز کار میکنند،
197
00:07:35,670 –> 00:07:37,770
که اکنون بسیار خوب است، یک نکته وجود دارد،
198
00:07:37,770 –> 00:07:39,900
بنابراین اگر میخواهید یک
199
00:07:39,900 –> 00:07:42,780
مجموعه خالی در پایتون ایجاد کنید و این کار را انجام دهید،
200
00:07:42,780 –> 00:07:46,200
در واقع یک فرهنگ لغت، بنابراین
201
00:07:46,200 –> 00:07:48,540
کاری که برای ایجاد یک مجموعه خالی باید انجام دهید این است که
202
00:07:48,540 –> 00:07:51,180
باید از سازنده مجموعه استفاده کنید، بنابراین