Open BabakAmini opened 2 years ago
بله دقیقا برای رفع این مشکلی که شما مطرح کردید هست، تبدیل set هر چیز duplicate رو حذف میکنه و میشه مجدد به لیست تبدیلش کرد. من با این روش سعی کردم از تکراری بودن موارد جلوگیری کنم.
ممنون، جالب بود، من این روش رو نمیدونستم، البته همچنان تغییر عدد ۱۵ به ۱۴ حدود ۵۰ آیدی به لیست آیدیها اضافه میکنه
یعنی میگید برخی رو از دست میدیم؟
On Mon, Apr 18, 2022, 9:58 PM BabakAmini @.***> wrote:
ممنون، جالب بود، من این روش رو نمیدونستم، البته همچنان تغییر عدد ۱۵ به ۱۴ حدود ۵۰ آیدی به لیست آیدیها اضافه میکنه
— Reply to this email directly, view it on GitHub https://github.com/ghodsizadeh/tehran-stocks/issues/80#issuecomment-1101588963, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSDCQG5JYQDUL77ARWJ6H3VFWLVNANCNFSM5THIROOA . You are receiving this because you modified the open/close state.Message ID: @.***>
یعنی میگید برخی رو از دست میدیم؟ … On Mon, Apr 18, 2022, 9:58 PM BabakAmini @.> wrote: ممنون، جالب بود، من این روش رو نمیدونستم، البته همچنان تغییر عدد ۱۵ به ۱۴ حدود ۵۰ آیدی به لیست آیدیها اضافه میکنه — Reply to this email directly, view it on GitHub <#80 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSDCQG5JYQDUL77ARWJ6H3VFWLVNANCNFSM5THIROOA . You are receiving this because you modified the open/close state.Message ID: @.>
بله، آیدی با ۱۴ کاراکتر هم داریم، برای دیتای امشب حدود ۵۰ نماد دیگه هم هست
ممنونم. سعی میکنم این مورد رو اصلاح کنم. هرچند الان دیتا رو از جای دیگهای میگیره ولی باید اونجا رو هم اصلاح کنم.
وقت بخیر
از آنجایی که در لینک http://tsetmc.com/tsev2/data/MarketWatchPlus.aspx علاوه بر اطلاعات قیمت، اطلاعات سفارشات نیز وجود دارد روشی که شما در لینک زیر استفاده کردهاید باعث بدست آمدن آیدی تکراری میشود:
https://github.com/ghodsizadeh/tehran-stocks/blob/e7ef575d9d2fee2ffbe192d6a5c30e9ce31254af/src/tehran_stocks/download/names.py#L12
در لحظهای که من چک کردم روش شما ۸۰۰۸ آیدی بر میگرداند در صورتیکه در واقعیت فقط ۱۳۸۱ نماد وجود دارد، به عبارتی حدود ۶ برابر تعداد موجود (یک بار برای دیتای قیمت هر نماد و ۵ بار برای دیتای ۵ سطر سفارشات). اینکار باعث میشود اجرای حلقه زیر بسیار زمانبر باشد:
https://github.com/ghodsizadeh/tehran-stocks/blob/e7ef575d9d2fee2ffbe192d6a5c30e9ce31254af/src/tehran_stocks/download/names.py#L138
برای برطرف شدن این اشکال، کد زیر پیشنهاد میشود:
توجه داشته باشید که آیدی نماد میتواند ۱۴ کاراکتر هم داشته باشد بنابراین بجای عدد ۱۵ از عدد ۱۴ استفاده کردهام.
سوالی هم که برای من پیش آمده این است که چرا با وجود اینکه مقدار بازگشتی ()re.findall از نوع list هست شما یک بار آن را به set تبدیل کرده و بعد دوباره list برگرداندهاید. دلیل خاصی برای اینکار داشتین؟