如何在未知长度列表中找到元组的itertools产品?

时间:2017-01-14 07:55:31

标签: python itertools

我正在开发一个程序,我正在使用itertools.product()来查找n个元组的组合。 例如:

n = int(input())

假设用户输入3

a = [(True, False), (True, False), (False, True)]

现在我希望得到以下内容作为输出:

[(True, True, True),
 (True, True, False),
 (True, False, True),
 (True, False, False),
 (False, True, True),
 (False, True, False),
 (False, False, True),
 (False, False, False)]

当指定列表中的元组数时,我可以这样做。

1 个答案:

答案 0 :(得分:0)

产品运作如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:src="@drawable/common_google_signin_btn_text_dark_pressed"/>

</LinearLayout>

所以你需要做的是

>>> list(itertools.product([True, False], [True, False]))
[(True, True), (True, False), (False, True), (False, False)]
>>> list(itertools.product([True, False], [True, False], [True, False]))
[(True, True, True),
 (True, True, False),
 (True, False, True),
 (True, False, False),
 (False, True, True),
 (False, True, False),
 (False, False, True),
 (False, False, False)]