这里是我的程序: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