Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

תיכנות בלינוקס - בעיה תכנותי בפיתון itertools.product

queency - 07/05/2020 - 09:46
נושא ההודעה: בעיה תכנותי בפיתון itertools.product
איך אפשר למכן את הדוגמא הבאה:

>>> for x in itertools.product((1,2),(3,4),(5,6)):
... print x
...
(1, 3, 5)
(1, 3, 6)
(1, 4, 5)
(1, 4, 6)
(2, 3, 5)
(2, 3, 6)
(2, 4, 5)
(2, 4, 6)

כאשר הדוגמא הזאת לא עובדת :
>>> y=((1,2),(3,4),(5,6))
>>> for x in itertools.product(y):
... print x
...
((1, 2),)
((3, 4),)
((5, 6),)
>>>
f-16 - 07/05/2020 - 10:20
נושא ההודעה:
היי,

האם זה פותר לך את הבעיה?

קוד:
from itertools import product
a = ((1,2),(3,4),(5,6))
for x in itertools.product(a[0],a[1],a[2]):
    print(x)


יש גם את זה:

קוד:
from itertools import product
a = ((1,2),(3,4),(5,6))

for x in itertools.product(*a):
    print(x)

mksoft - 07/05/2020 - 13:05
נושא ההודעה:
אתה לא מעביר בשני המקרים אותו דבר. בפעם הראשונה אתה מעביר ל-product שלושה tuples, בפעם השניה אתה מעביר tuple אחד שמכיל בתוכו שלושה tuples.

כמו ש־f-16 כתב לך, שים * לפני כדי לפרוש את ה-tuple הבודד למרכיביו.
queency - 08/05/2020 - 00:57
נושא ההודעה:
וואו , תודה רבה f-16 , זה בהחלט מה שהייתי צריך.

MKSOFT ברור שהבנתי שאני מעביר 2 דברים שונים פשוט
לא ידעתי על האפשרות של ה * .

תודה רבה לשניכם.
כל הזמנים הם GMT + 2 שעות