第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從文件中讀取并將內(nèi)容轉(zhuǎn)換為字典

從文件中讀取并將內(nèi)容轉(zhuǎn)換為字典

猛跑小豬 2021-08-17 10:48:16
我有一個(gè)文本文件,其內(nèi)容如下:State TexasAustin Houston DallasState FloridaOrlandoMiamiJacksonvilleNaples!State CaliforniaSan DiegoLos AngelesSan Francisco目標(biāo):我想從這個(gè)文本文件中讀取并將它們轉(zhuǎn)換成字典,應(yīng)該是這樣的 -state_dict = {    'Texas': ['Austin', 'Houston', 'Dallas'],     'Florida': ['Orlando', 'Miami', 'Jacksonville', 'Naples'],     'California': ['San Diego', 'Los Angeles', 'San Francisco']}到目前為止,我的代碼是這樣的:State_Dict = {}with open('state.txt', 'r') as main_fd:for mystate in main_fd:    mystate = mystate.lstrip()    if ("State" in mystate):        state_key = "_".join(mystate.split()[1:])        State_Dict[state_key] = []        for cities in main_fd:            if ("!" in cities):                break            else:                State_Dict[state_key].append(cities.rstrip())print(State_Dict)但輸出是這樣的:{'Texas': [    ' Austin', ' Houston', ' Dallas',     'State Florida', ' Orlando', ' Miami',     ' Jacksonville', ' Naples'    ], 'California': [    ' San Diego', ' Los Angeles', ' San Francisco'    ]}我該如何解決?
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

你正在尋找的是這樣的東西。考慮一次遍歷一行的循環(huán),并為您的條件構(gòu)建一系列檢查。附注。如果這不起作用,請(qǐng)告訴我,未經(jīng)測(cè)試就編寫(xiě)它。


State_Dict = {}


with open('state.txt', 'r') as main_fd:

    for line in main_fd:

        line = line.strip() #left and right stripped    

        #if ("state" in line.lower()): #better version suggested in comments to handle 'state' and 'State'.

        if ("State" in line):

            state_key = "_".join(line.split()[1:])

            State_Dict[state_key] = []

        elif ("!" in line):

            continue #goes to next iteration of loop instead of stopping the loop unlike break

        else: #assuming last case

            State_Dict[state_key].append(line) #line has already been stripped


print(State_Dict)


查看完整回答
反對(duì) 回復(fù) 2021-08-17
?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

你的代碼的問(wèn)題是當(dāng)你出現(xiàn)“!”時(shí),你正在停止尋找一個(gè)州的城市。但城市的新部分也由以“State”開(kāi)頭的線表示。另一個(gè)錯(cuò)誤是您每次都從頭開(kāi)始迭代城市,而不是您當(dāng)前所處的狀態(tài)。


State_Dict = {}

main_fd = '''\

State Texas

Austin

Houston

Dallas

State Florida

Orlando

Miami

Jacksonville

Naples

!

State California

San Diego

Los Angeles

San Francisco\

'''.splitlines()


for idx, mystate in enumerate(main_fd):

    if "State" in mystate:

        state_key = "_".join(mystate.split()[1:])

        State_Dict[state_key] = []


        for cities in main_fd[idx+1:]:

            if '!' in cities or "State" in cities:

                break


            else:

                State_Dict[state_key].append(cities.rstrip())


print(State_Dict)

輸出:


{'Florida': ['Orlando', 'Miami', 'Jacksonville', 'Naples'], 

'California': ['San Diego', 'Los Angeles', 'San Francisco'], 

'Texas': ['Austin', 'Houston', 'Dallas']}


查看完整回答
反對(duì) 回復(fù) 2021-08-17
  • 2 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)