我是Python新手,我想知道如何用逗号(,)和冒号分割(:).我正在尝试加油站问题,我想从文本文件中读取这样的内容:
1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8
Run Code Online (Sandbox Code Playgroud)
我还想打开并从文件中读取这些数据并将其存储在链表中.
到现在为止我做了这个:
def GasStation(strArr):
strArr = []
f = open('Details.txt', 'r')
for line in f:
strArr.append(line)
amount, tank = int(strArr[0]),0
stations = [amount.split(":") for i in (strArr[1:] + strArr[1:-1])]
for curr in range(start, start+amount):
tank = tank + int(stations[curr][0]) - int(stations[curr][1])
if tank < 0: sys.exit()
if tank >= 0: return start+1
else: tank = 0
return "not"
Run Code Online (Sandbox Code Playgroud)
我也想打印作为答案的索引.
请帮帮我,我不明白为什么不给我打印答案.
谢谢.
假设你的问题是如何在给定的顺序通过拆分,然后:,你可以使用列表理解:
>>> numbers = '1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8'
>>> pairs = [pairs.split(':') for pairs in numbers.split(',')]
>>> print pairs
[['1', '1'],
['2', '2'],
['3', '3'],
['4', '4'],
['5', '5'],
['6', '6'],
['7', '7'],
['8', '8']]
Run Code Online (Sandbox Code Playgroud)
如果您想要展平列表,可以使用itertools.chain.from_iterable:
>>> import itertools
>>> print list(itertools.chain.from_iterable(pairs))
>>> ['1', '1', '2', '2', '3', '3', '4', '4', '5', '5', '6', '6', '7', '7', '8', '8']
Run Code Online (Sandbox Code Playgroud)
为了能够回答您的其他问题,我们需要了解您的意思tank,amount并且stations.