回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在一个列表中创建了一个笛卡尔积,现在我想随机取出4个不同的元组(我在文章末尾尝试过)。在</p>
<pre><code>shape = ['triangle' , 'square' , 'circle' , 'cross']
color = ['green' , 'red' , 'blue' , 'pink']
__cartesianPsc__ = list(itertools.product(shape , color))
</code></pre>
<p>我的笛卡尔积</p>
^{pr2}$
<p>现在我想随机得到4个不同的元组,三角形,正方形,圆圈和十字,4种不同的颜色,绿色,红色,粉色,蓝色,但是每种颜色和每种形状/颜色只存在一次
示例:</p>
<p>第一个选择</p>
<pre><code>first = ('triangle', 'green')
second = ('square', 'red')
third = ('circle', 'blue')
fourth = ('cross', 'pink')
</code></pre>
<p>第二个</p>
<pre><code>first = ('circle', 'blue')
second = ('cross', 'red')
third = ('triangle', 'pink')
fourth = ('square', 'green')
</code></pre>
<p>等等</p>
<p>有人知道怎么做吗?我试过用随机范围从三角形、正方形、圆形、十字中挑一个,但我不知道怎么做才能得到不同的颜色</p>
<p>----我的旧代码-----
我有一个问题,它总是(三角形,绿色)作为一个元组,但是其他3个元组(每次)都不同。在</p>
<pre><code>shape = ['triangle' , 'square' , 'circle' , 'cross']
color = ['green' , 'red' , 'blue' , 'pink']
__cartesianPsc__ = list(itertools.product(shape , color))
while True:
se1 = random.randrange(0, 4, 1)
se2 = random.randrange(5, 8, 1)
se3 = random.randrange(9, 12, 1)
se4 = random.randrange(13, 16, 1)
# safe the randomly choosen tuple of the cartesian product
first = __cartesianPsc__[se1] #triangle X color
second = __cartesianPsc__[se2] # square X color
third = __cartesianPsc__[se3] #circle X color
fourth = __cartesianPsc__[se4] #cross X color
# if statement to stop the While-LOOP only if there are 4 tuples with
# 4 different shapes and colors !
"""Problem: (triangle, green) is always a tuple, no other color with triangle
if second[1] != first[1] and second[1] != third[1] and second[1] != fourth[1] \
and third[1] != first[1] and third[1] != second[1] and third[1] != fourth[1] \
and fourth[1] != first[1] and fourth[1] != second[1] and fourth[1] != third[1] \
and first[1] != second[1] and first[1] != third[1] and first[1] != fourth[1]:
"""
break
</code></pre>
<p>你好,马丁:)</p>