عد عناصر القائمة المكررة
في apple وbanana وapple وcherry وbanana وapple توجد 6 عناصر و3 قيم مختلفة و3 نسخ زائدة: تظهر apple ثلاث مرات وbanana مرتين. تُعرض كل قيمة متكررة مع عددها وتبقى قائمتك كما هي. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- apple banana apple cherry banana apple
- إجمالي العناصر
- 6
- العناصر الفريدة
- 3
- عدد العناصر المكررة
- 3
- عدد القيم المتكررة
- 2
غالبًا ما تخفي قوائم رموز المنتجات وعناوين البريد ووحدات SKU للمخزون وإجابات الاستبيانات ووسوم السجلات تكرارات صامتة تضخّم العدّ، وتكسر قيود التفرّد، أو تحرّف التحليلات. تعدّ هذه الأداة كم عنصرًا من عناصر القائمة مكرّر —نسخ زائدة بعد أول ظهور لكل قيمة— وتبلّغ عن كل قيمة تتكرر مع تكرارها الدقيق، حتى تتمكنوا من تدقيق البيانات وتنظيفها دون كتابة سكربت لمرة واحدة. الصقوا قائمة متعددة الأسطر، واختياريًا وحّدوا حالة الأحرف أو قصّوا المسافات الخارجية، واحصلوا على إجمالي العناصر والقيم الفريدة وعدد التكرارات الزائدة وجدولًا مرتبًا للقيم التي تظهر مرتين أو أكثر فقط.
ماذا يعني عدّ عناصر القائمة المكررة وماذا تحتوي الاستجابة
عنصر القائمة هو سطر واحد من النص متعدد الأسطر الذي ترسلونه. يقسّم المحرك عند أسطر جديدة بعد تطبيع إرجاع السطر، ويقتص اختياريًا كل سطر، ثم يبني خريطة تكرار للقيم. العناصر الفريدة هي المفاتيح المميزة في تلك الخريطة.
عدد العناصر المكررة هو عدد النسخ الزائدة: إجمالي العناصر ناقص العناصر الفريدة. يجيب هذا العدد الصحيح الواحد عن كم عنصرًا من القائمة مكرّر بالمعنى العملي لتنظيف البيانات — كم صفًا يمكنكم حذفه مع الإبقاء على ممثل واحد لكل قيمة. على حدة، عدد القيم المتكررة هو كم قيمة مميزة تظهر مرتين على الأقل، وتسرد المصفوفة duplicates تلك القيم فقط مع العدد الكامل وعدد الزائد (العدد ناقص واحد).
تُرتَّب الصفوف حسب العدد تنازليًا ثم حسب قيمة العرض تصاعديًا، فلا تنقلب التعادلات بين التشغيلات. تظل الأسطر ذات المسافات فقط عناصر عندما يكون trim خاطئًا؛ وعندما يكون trim صحيحًا (الافتراضي) تنهار سطر من مسافات فقط إلى السلسلة الفارغة ويمكن أن تشارك في الخريطة كأي قيمة أخرى. هذه الصفحة ليست عدّاد تكرار كلمات على نثر حر، ولا مزيل تكرار صفوف CSV، ولا أداة إعادة كتابة لإزالة الأسطر المكررة — فتلك تحل نوايا بحث مختلفة.
هنا وعد المنتج هو التدقيق أولًا: عدّ الزائد، وسمّوا المخالفين، واتركوا القائمة الأصلية دون مساس حتى تقرروا ماذا تحذفون.
أين يثبت عدّاد العناصر المكررة قيمته في عمل البيانات
يلصق محللو البيانات صادرات أعمدة لقياس كم وحدة SKU أو معرّف عميل يتكرر قبل تحميل المستودع، محوّلين شكًا غامضًا ببيانات متسخة إلى عدّ دقيق للنسخ الزائدة وقائمة مرتبة لأسوأ المخالفين. تدقق فرق الدعم والعمليات وسوم التذاكر وقوائم المعيَّنين وأرقام التسلسل في المخزون حتى تتوقف لوحات المعلومات عن العدّ المزدوج دون فرض إزالة تكرار مدمّرة فورًا. يستخدم المعلمون ودورات البرمجة الأداة كموراكل حتمي لتمارين معالجة القوائم التي تطلب من الطلاب الإبلاغ عن تكرارات القيم المكررة بدل حذفها فقط.
تتحقق فرق المحتوى والتسويق من خيارات النص الحر في الاستبيانات وتفريغات النماذج متعددة الاختيار بحثًا عن إدخالات مزدوجة عرضية تحرّف الرسوم الدائرية. يربط المطوّرون العقد نفسه في CI ليؤكدوا أن قائمة تجهيز لها صفر تكرارات قبل تشغيل سكربت seed، أو ليوثّقوا تكرارات مقصودة بعدد متوقع. بخلاف أدوات إزالة الأسطر المكررة، لا يعيد هذا الطرف كتابة قائمة المصدر أبدًا؛ إنه يقيس فقط، وهو ما يحتاجه المدققون وعمليات ضبط التغيير قبل أن يحذف أحد الصفوف.
التحقق الفاشل لا يستهلك الرصيد. استخدموها خطوة قياس قبل استدعاء أداة إزالة تكرار أو دمج CSV أو قبول رفع مستخدم — عدّوا أولًا، ثم نظّفوا، واحفظوا الخطوتين قابلتين لإعادة الإنتاج.
حالات الاستخدام
تدقيق قوائم المخزون والمعرّفات قبل الاستيراد
الصقوا وحدات SKU أو الأرقام التسلسلية أو معرّفات العملاء واعرفوا كم نسخة زائدة توجد وأي القيم تتكرر أكثر قبل تحميل مستودع أو CRM.
مفاتيح إجابات للصف والبرمجة
ولّدوا أعداد تكرار وجداول تكرار قابلة لإعادة الإنتاج لواجبات معالجة القوائم دون الاعتماد على صيغ جداول غامضة.
الأسئلة الشائعة
كيف أعدّ عناصر القائمة المكررة؟
أرسلوا حقل text متعدد الأسطر غير فارغ حيث كل سطر عنصر واحد.
هل هذا يزيل التكرارات من قائمتي؟
لا. هذه الأداة تقيس وتبلّغ فقط. استخدموا قدرة مخصصة لإزالة الأسطر المكررة أو إزالة تكرار CSV عندما تريدون قائمة منظفة؛ عدّوا أولًا إن احتجتم مسار تدقيق.
ما الفرق بين التكرارات والقيم المتكررة؟
التكرارات هي النسخ الزائدة التي يمكنك حذفها مع الإبقاء على نسخة من كل قيمة، وعددها 3 في المثال. أما القيم المتكررة فهي القيم المختلفة التي تظهر مرتين على الأقل، وهي هنا apple وbanana، أي 2.
هل تُعد Apple وapple عنصرًا واحدًا؟
فقط إذا فعّلت خيار تجاهل حالة الأحرف، فتُجمعان في قيمة واحدة تظهر بالكتابة التي وردت أولًا. أما افتراضيًا فالمقارنة دقيقة وتبقيان منفصلتين.
هل تؤثر المسافات في بداية السطر أو نهايته؟
لا افتراضيًا، إذ تُحذف المسافات الخارجية فتُعد apple والكلمة نفسها مسبوقة بمسافة قيمة واحدة. أوقف هذا الحذف عندما تكون للمسافات أهمية، كما في الرموز ذات العرض الثابت.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/count-duplicate-items \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"apple\nbanana\napple\ncherry\nbanana\napple"}'const res = await fetch("https://api.kit.forhosting.com/str/count-duplicate-items", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "apple\nbanana\napple\ncherry\nbanana\napple"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/count-duplicate-items",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "apple\nbanana\napple\ncherry\nbanana\napple"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/count-duplicate-items", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"apple\\nbanana\\napple\\ncherry\\nbanana\\napple"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"apple\nbanana\napple\ncherry\nbanana\napple"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/count-duplicate-items", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "apple\nbanana\napple\ncherry\nbanana\napple"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.count_duplicate_items",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
المحرك نقي وحتمي: بلا شبكة، بلا عيّنات، وبلا اختصارات تعتمد على التاريخ، لذا يعطي نفس اللصق دائمًا نفس JSON لتجهيزات CI ومفاتيح إجابات الصف ودفاتر الدعم. استخدموها مجانًا في المتصفح أثناء استكشاف تصدير فوضوي، أو استدعوا واجهة API بسعر $0.002 لكل طلب ناجح عندما تحتاج المسارات إلى تدقيق تكرار قابل لإعادة الإنتاج قبل الاستيراد أو الدمج.
ماذا يعني عدّ عناصر القائمة المكررة وماذا تحتوي الاستجابة
تُحفظ أول كتابة شوهدت لكل مفتاح كقيمة مُبلَّغ عنها حتى عندما يكون ignore_case صحيحًا، فيُحفظ شكل الأحرف الذي كتبتموه أولًا مع دمج Apple مع apple. تعيد الاستجابة أيضًا علامتي ignore_case و trim وتوسّم operation بـ count_duplicate_items لمسارات متعددة الأدوات. الإدخال الفارغ دائمًا invalid_input: لا يجوز أن يصبح نموذج فارغ نجاحًا صامتًا بصفر تكرارات.
عقد الإدخال والعلامات والحدود وسلوك الخطأ
ثبّتوا الذهب على العقد المقرب: أعداد صحيحة وترتيب مستقر حتى لا تهتز CI على الترتيب. أرسلوا جسم JSON بطريقة POST مع الحقل الإلزامي text: سلسلة غير فارغة أسطرها هي عناصر القائمة. تُقبل الأسماء البديلة input و value و data و s و message و string و content و body و list حتى تعيد جداول البيانات ونماذج الاستعلام والودجات المكتوبة استخدام العقد نفسه. تُحوَّل الأعداد المنتهية والقيم المنطقية إلى سلاسل؛ وتُرفض الكائنات والمصفوفات حتى لا يصبح جسم JSON متداخل بالخطأ تفريغًا عديم الفائدة. ignore_case الاختياري افتراضيًا false للمقارنة الدقيقة؛ اضبطوه true عندما تريدون مفاتيح بلا تمييز حالة الأحرف لتسميات يدخلها بشر. trim الاختياري افتراضيًا true حتى لا تخترع مسافات عرضية في البداية أو النهاية تفرّدًا وهميًا؛ اضبطوا trim على false عندما تكون المسافات ذات معنى (مثل رموز بعرض ثابت). الطول محدود بخمسة وستين ألفًا وخمسمائة وستة وثلاثين حرفًا حتى لا يحتكر لصق منفلت عامل Worker؛ تفشل الحمولات الأطول برسالة حد صريحة بدل قطع صامت مبتور. عند النجاح تتلقون total_items و unique_items و duplicate_item_count و repeating_value_count و has_duplicates ومصفوفة duplicates من value و count و extra مع العلامات و operation المُعادة. عند الفشل ترفع المهمة invalid_input برسالة واضحة تسمّي المشكلة — text مفقود أو سلسلة فارغة أو حمولة أطول من الحد أو علامة غير منطقية — ولا تُفوتر أخطاء التحقق. اقرنوا التشغيل المجاني في متصفح هذه الصفحة بواجهة API المدفوعة عندما تحتاجون تقرير التكرار نفسه داخل مسار آلي دون شحن ماسحات تكرار خاصة بكم.
أين يثبت عدّاد العناصر المكررة قيمته في عمل البيانات
مسار المتصفح مجاني للاستكشاف؛ مكالمات API الناجحة تكلف $0.002 بلا رموز نموذج وبلا شبكة صادرة.
حالات التكامل
تجهيزات CI وسكربتات seed
أكدوا أن تجهيزًا متعدد الأسطر له duplicate_item_count صفر، أو ثبّتوا الأعداد المتوقعة للتكرارات المقصودة، قبل seed أو دمج.
أسئلة تقنية
ماذا يعني duplicate_item_count؟
هو total_items ناقص unique_items: كم موضعًا في القائمة نسخ زائدة. لـ apple و banana و apple تحصلون على total 3 و unique 2 و duplicate_item_count 1.
كيف يعمل ignore_case و trim؟
ignore_case (افتراضي false) يدمج القيم التي تختلف فقط في حالة الأحرف مع الإبقاء على أول شكل أصلي. trim (افتراضي true) يزيل المسافات البادئة واللاحقة من كل سطر قبل المقارنة.
كم يكلف عدّ عناصر القائمة المكررة؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل نداء ناجح؛ الإدخال غير الصالح لا يُفوتر.