問題是讓我這樣做 在一個小高地村莊,每個人都有姓 McIntosh、McGregor、McDonald 或 McKenzie。每個人都被稱為 Angus、Hamish、Morag 或 Mhairi 沒有兩個人有相同的名字。創建一個程式來編譯村里的居民名單。
它利用了串列和回圈,但我不知道該怎么做,這就是我目前所擁有的
surnames = ["Mcintosh", "McGregor", "McDonald", "Mckenzie"]
forenames = ["Angus", "Hamish", "Morag", "Mhairi"]
for forenames in forenames:
for surnames in surnames:
print forenames
uj5u.com熱心網友回復:
執行嵌套回圈的想法是正確的,但是您需要為for var in iterable部件使用不同的變數名稱,并且需要列印兩個回圈中的變數。
>>> surnames = ["Mcintosh", "McGregor", "McDonald", "Mckenzie"]
>>> forenames = ["Angus", "Hamish", "Morag", "Mhairi"]
>>> for fore in forenames:
... for sur in surnames:
... print(fore, sur)
...
Angus Mcintosh
Angus McGregor
Angus McDonald
Angus Mckenzie
Hamish Mcintosh
Hamish McGregor
Hamish McDonald
Hamish Mckenzie
Morag Mcintosh
Morag McGregor
Morag McDonald
Morag Mckenzie
Mhairi Mcintosh
Mhairi McGregor
Mhairi McDonald
Mhairi Mckenzie
請注意 egsurnames是所有姓氏的串列,for sur in surnames并將每個單獨的姓氏分配給變數sur。
uj5u.com熱心網友回復:
你有一個很好的開始,但我認為你需要更多地解釋正在發生的事情。第一個回圈將選擇名字。第二個回圈將選擇姓氏。
為了更清楚地理解這一點,這里有一個例子
first = [1, 2, 3, 4]
second = [1, 2, 3, 4]
for i in first:
for k in second:
print(i, k)
輸出:
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4
uj5u.com熱心網友回復:
surnames = ["Mcintosh", "McGregor", "McDonald", "Mckenzie"]
forenames = ["Angus", "Hamish", "Morag", "Mhairi"]
print({f"{i} {j}"for j in forenames for i in surnames})
# {'Mhairi Mcintosh', 'Morag Mckenzie', 'Mhairi Mckenzie', 'Mhairi McDonald', 'Angus McGregor', 'Morag McGregor', 'Angus Mckenzie', 'Hamish Mckenzie', 'Angus Mcintosh', 'Morag McDonald', 'Angus McDonald', 'Hamish McGregor', 'Morag Mcintosh', 'Hamish Mcintosh', 'Mhairi McGregor', 'Hamish McDonald'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519805.html
標籤:Python循环
上一篇:在R中撰寫回圈函式
