簡體   English   中英

Python將字符串分隔成單詞和遞歸

[英]Python Separating String into Words and Recursion

我正在嘗試創建一個輸入的代碼(例如下面的例子)

輸入:
BHK158車輛11
OIUGHH MOTORCYCLE 34.46
BHK158 VEHICLE 12.000
TRIR TRUCK 2.0
BLAS215 MOTORCYCLE 0.001
結束

並產生一個輸出,其中列出每個車牌號碼,並列出總費用(例如下面)

對應輸出:
OIUGHH:5.8582
BHK158:5.75
TRIR:2.666
BLAS215:0.00017

車輛牌照每公里收費0.25美元(公里數是輸入清單中的數字值),卡車每公里收費1.333美元,摩托車每公里收費0.17美元。 輸出按降序列出。

這是我到目前為止的代碼:

fileinput = input('Input: \n')
split_by_space = fileinput.split(' ')

vehicles = {}


    if split_by_space[1] == 'VEHICLE':
        split_by_space[2] = (float(split_by_space[2]) * 0.25) 
    elif split_by_space[1] == 'TRUCK':
        split_by_space[2] = float(split_by_space[2]) * 1.333 
    elif split_by_space[1] == 'MOTORCYCLE':
        split_by_space[2] = float(split_by_space[2]) * 0.17 

    if split_by_space[0] in vehicles:
        previousAmount = vehicles[split_by_space[0]]
        vehicles[split_by_space[0]] = previousAmount + split_by_space[2]
    else:
        vehicles[split_by_space[0]] = split_by_space[2]

謝謝,任何幫助/提示將不勝感激。

通過你的代碼我注意到了一些事情,python中的列表指示從0開始,而不是1,所以你得到了一堆出界錯誤。 其次,輸入只占用輸入的第一行,因此它永遠不會越過第一行。 .split()默認情況下按\\n分割文本,您必須指定是否要按其他內容分割,如空格。

test.txt內容:

BHK158 VEHICLE 11
OIUGHH MOTORCYCLE 34.46
BHK158 VEHICLE 12.000
TRIR TRUCK 2.0
BLAS215 MOTORCYCLE 0.001

python代碼:

fileinput = open('test.txt', 'r')
lines = fileinput.readlines()

vehicles = {}

for line in lines:
    split_by_space = line.split(' ')
    if split_by_space[1] == "VEHICLE":
        split_by_space[2] = (float(split_by_space[2]) * 0.25)
    elif split_by_space[1] == "TRUCK":
        split_by_space[2] = float(split_by_space[2]) * 1.333
    elif split_by_space[1] == "MOTORCYCLE":
        split_by_space[2] = float(split_by_space[2]) * 0.17


    if split_by_space[0] in vehicles:
        previousAmount = vehicles[split_by_space[0]]
        vehicles[split_by_space[0]] = previousAmount + split_by_space[2]
    else:
        vehicles[split_by_space[0]] = split_by_space[2]

輸出:

{'BLAS215': 0.00017, 'OIUGHH': 5.858200000000001, 'TRIR': 2.666, 'BHK158': 5.75}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM