# (3) 使用雙層迴圈

### 1. 字串內容兩兩比對&#x20;

{% code title="程式：" %}

```python
#設定初值
data = 'ABACB'
cnt = 0

#逐一取出字串內容
for i in range(len(data)):
    #從前一個索引之後再逐一取出字串內容
    for j in range(i+1, len(data)):
        #判斷是否字串的兩個位置內容相同？
        if data[i]==data[j]:
            cnt+=1
    
#印出結果
print(f'共有{cnt}組成對資料')
```

{% endcode %}

{% code title="執行結果：" %}

```python
共有2組成對資料
```

{% endcode %}

<figure><img src="https://1148930333-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJvF1wk3Ixe9l9GXQ70%2Fuploads%2FvfnyL0WWzoCmpP5bfmAg%2FScreen%20Shot%202022-9-16%20at%20%E4%B8%8A%E5%8D%88%2008.16.png?alt=media&#x26;token=3a97273d-9792-4b04-a13a-03692af62ac1" alt=""><figcaption></figcaption></figure>

在以上的程式，有兩個指標在同一個字串上操作。

### 2. 清單內容兩兩比對&#x20;

如果資料存在清單中，也可以用兩層迴圈的２個指標互相比對是否所指內容相同？

{% code title="程式：" %}

```python
#設定初值
data = ['A', 'B', 'O', 'O', 'AB', 'A', 'B', 'O']
cnt = 0

#逐一取出清單內容
for i in range(len(data)):
    #從前一個索引之後再逐一取出清單內容
    for j in range(i+1, len(data)):
        #判斷是否兩個指標所指內容相同？
        if data[i]==data[j]:
            cnt+=1
    
#印出結果
print(f'共有{cnt}組血型相同配對')
```

{% endcode %}

{% code title="執行結果：" %}

```python
共有5組血型相同配對
```

{% endcode %}

### 自主練習

1. 某個舞會有10人參加，他們的性別依座位順序分別是「男、女、男、男、女、男、女、女、男、男」，如果下一支舞只能由兩個異性一起跳，請問有幾種配對方式？
