[python] كيفية الانضمام لمجموعتين في سطر واحد دون استخدام "|"



3 Answers

عذرًا ، لماذا لا يمكننا استخدام عامل تشغيل الصلة مرة أخرى؟

>>> set([1,2,3]) | set([4,5,6])
set([1, 2, 3, 4, 5, 6])
Question

افترض أن يتم تعيين S و T مجموعات. دون استخدام عامل الانضمام | كيف يمكنني العثور على اتحاد المجموعتين؟ هذا ، على سبيل المثال ، يجد التقاطع:

S = {1, 2, 3, 4}
T = {3, 4, 5, 6}
S_intersect_T = { i for i in S if i in T }

فكيف يمكن أن أجد الاتحاد من مجموعتين في سطر واحد دون استخدام | ؟




بافتراض أنك لا تستطيع أيضًا استخدام s.union(t) ، أي ما يعادل s | t s | t ، يمكنك أن تجرب

>>> from itertools import chain
>>> set(chain(s,t))
set([1, 2, 3, 4, 5, 6])

أو ، إذا كنت تريد الفهم ،

>>> {i for j in (s,t) for i in j}
set([1, 2, 3, 4, 5, 6])



افترض أن لديك 2 قوائم

 A = [1,2,3,4]
 B = [3,4,5,6]

حتى تتمكن من العثور على A Union B النحو التالي

 union = set(A).union(set(B))

إذا كنت تريد أيضًا العثور على تقاطع وعدم تقاطع ، فعليك القيام بذلك على النحو التالي

 intersection = set(A).intersection(set(B))
 non_intersection = union - intersection



إذا كنت بخير مع تعديل المجموعة الأصلية (التي قد ترغب في القيام بها في بعض الحالات) ، فيمكنك استخدام set.update() :

S.update(T)

قيمة الإرجاع هي بلا ، ولكن سيتم تحديث S لتكون اتحاد S و T الأصليين.




Related



Tags

python python   set