亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算一個 Python 程序以按字母順序顯示原始 13 個狀態的以下輸出

計算一個 Python 程序以按字母順序顯示原始 13 個狀態的以下輸出

慕桂英3389331 2022-06-22 15:25:22
該文件States.txt包含美國 50 個州加入工會的順序。使用循環編寫一個程序,for以按字母順序顯示原始 13 個狀態的以下輸出。文件 States.txt 中的內容:DelawarePennsylvaniaNew JerseyGeorgiaConnecticutMassachusettsMarylandSouth CarolinaNew HampshireVirginiaNew YorkNorth CarolinaRhode IslandVermontKentuckyTennesseeOhioLouisianaIndianaMississippiIllinoisAlabamaMaineMissouriArkansasMichiganFloridaTexasIowaWisconsinCaliforniaMinnesotaOregonKansasWest VirginiaNevadaNebraskaColoradoNorth DakotaSouth DakotaMontanaWashingtonIdahoWyomingUtahOklahomaNew MexicoArizonaAlaskaHawaii我目前的編碼:infile = open("States.txt", 'r')states = [line.rstrip() for line in infile]states.sort()      # I sort those 50 states in alphabetical order firstfor state in states:    print("\r", states[6],"\n",states[7], "\n", states[9], "\n", states[19], "\n", states[20], "\n", states[28], "\n", states[29], "\n", states[31], "\n", states[32], "\n", states[37], "\n", states[38], "\n", states[39], "\n", states[45], end="")   #I locate exact position of those 13 states    breakinfile.close()雖然我可以使用上面的編碼顯示預期的輸出,但這絕對不是利用for循環功能的好方法,因為我仍然可以在沒有for循環語句的情況下顯示確切的結果。程序的預期輸出:(需要垂直顯示13個狀態)ConnecticutDelawareGeorgiaMarylandMassachusettsNew HampshireNew JerseyNew YorkNorth CarolinaPennsylvaniaRhode IslandSouth CarolinaVirginia
查看完整描述

5 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您可以在排序之前使用切片來獲取前 13 個條目:states


infile = open("States.txt", 'r')

states = [line.rstrip() for line in infile]

original_states = states[:13]

original_states.sort()

for state in original_states:

    print(state)

infile.close()


查看完整回答
反對 回復 2022-06-22
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

在對文件進行排序之前,您可以使用它itertools.islice來讀取文件的前 13 行:


from itertools import islice

with open('States.txt') as infile:

    print(*sorted(islice(infile, 13)), sep='')


查看完整回答
反對 回復 2022-06-22
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

這是我對 stackoverflow 的第一個貢獻,所以請放輕松。我想更多地參與并回饋社會,因為這個社區給了我很大的幫助。


有人可能可以更簡化這一點,但這是我的解決方案:


filename="States.txt"

states= list()


with open (filename) as file:

    # convert to list of names 

    items = list(file.read().split())

從文件中生成州名列表。因為文件包含空格分隔的名稱,您需要將一些名稱放在一起:例如紐約


two_word_state_names=['New','North','South','West', 'Rhode']

skip=False


for idx,item in enumerate(items):

    if skip:

        skip=False

        continue

    elif item in two_word_state_names:

        states.append(str(items[idx] + " " + items[idx+1]))

        skip=True # skip the next loop because next item is the second word of the state

    else:

        states.append(item)

現在您可以排序并打印前十三個:


thirteen_states=states[:13]

thirteen_states.sort()


# Print result

for state in thirteen_states:

    print (state)

康涅狄格

特拉華州

喬治亞州

馬里蘭

馬薩諸塞州

新罕布什爾

新澤西州

紐約

北卡羅來納

賓夕法尼亞州

羅德島

南卡羅來納

弗吉尼亞


查看完整回答
反對 回復 2022-06-22
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

您的原始問題將狀態作為空格分隔的單詞,這需要額外的邏輯來提取和表示兩個單詞的狀態。使用您編輯的問題,它要簡單得多:


with open ('States.txt') as file:

    states = list(file.read().split('\n')[:13])

    states.sort()


for state in states:

    print (state)

Connecticut

Delaware

Georgia

Maryland

Massachusetts

New Hampshire

New Jersey

New York

North Carolina

Pennsylvania

Rhode Island

South Carolina

Virginia


查看完整回答
反對 回復 2022-06-22
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

因此,如果第一個列表包含 50 個狀態,并且您應該按排序順序輸出其中的 13 個,我想您可以創建一個包含 13 個關鍵狀態的列表,并且在您的 for 循環中,您可以檢查一個狀態是否是其中之一,而且只有當真打印呢?



查看完整回答
反對 回復 2022-06-22
  • 5 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號