這裏是我的程序:Python的空白移除在列表
import sys
d = sys.stdin.readlines()
print(*d)
d = [x.strip(' ') for x in d]
print(*d)
這裏是發生了什麼,當我運行它:
>>> import program12
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
# EOF
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
我的程序需要每行接受,2串分離由空格,隨後(可選)按數字。 我想不帶空格分隔這些所以這將是:
['Austin', 'Houston', 400]
然後我希望把這些在「曲線」,所以我將使用類似:
flights = collections.defaultdict(dict)
任何幫助感謝!編輯: 第一個答案是固定的!在談到我剛纔的問題,我加入這個代碼,這會產生一個錯誤: 現在我有這樣的:
import sys
d = sys.stdin.readlines()
print(*d)
d = [x.split() for x in d]
print(*d)
flights = {}
for each in d:
flights[each.split()[0]][each.split()[1]] = each.split()[2]
當我運行:
>>> import program12
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
['Austin', 'Houston', '400'] ['SanFrancisco', 'Fresno', '700'] ['Miami', 'Ames', '500']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/program12.py", line 8, in <module>
flights[each.split()[0]][each.split()[1]] = each.split()[2]
AttributeError: 'list' object has no attribute 'split'
編輯2: 我的程序:
import sys
import collections
d = sys.stdin.readlines()
d = filter(None,d.split('\n'))
flights = {each.split()[0]:{each.split()[1]:''} for each in d}
for each in d:
sp = each.split();flights[sp[0]][sp[1]] = '' if len(sp) <= 2 else sp[2]
新的錯誤:
>>> import program12
Austin Houston 400
SanFrancisco Fresno 700
Miami Ames 500
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/program12.py", line 4, in <module>
d = filter(None,d.split('\n'))
AttributeError: 'list' object has no attribute 'split'
謝謝!關於我之前的問題,現在您幫助我的代碼的第二部分不起作用。如果您可以請看看,我已經編輯了這個問題! :) – Coder117
你能分享這個樣本輸入嗎? –
我做到了。我在這個問題的最後列入了它。 – Coder117