我正在尝试解释从套接字收到的字符串。第一组数据如下所示:
2 -> 1
1 -> 2
2 -> 0
0 -> 2
0 -> 2
1 -> 2
2 -> 0
我使用以下代码来获取数值:
for i in range(0,len(data)-1):
if data[i] == "-":
n1 = data[i-2]
n2 = data[i+3]
moves.append([int(n1),int(n2)])
但是当数据中出现大于9的数字时,程序只取该数字的第二个数字(例如10,程序将得到0)。如何在保持获得单个数字的能力的同时从代码中获取两个数字?
答案 0 :(得分:0)
嗯,你只需要抓住每一个角色......
对于第二个值,你可以这样:data [i + 3,len(data)-1]
表示第一个:: data [0,i-2]
答案 1 :(得分:0)
使用split()函数
numlist = data[i].split('->')
moves.append([int(numlist[0]),int(numlist[1])])
答案 2 :(得分:0)
我假设每一行都可以作为名为line
的变量中的(字节)字符串使用。如果它是一大堆行,那么你可以用
lines = data.splitlines()
并处理for
语句中的每一行:
for line in lines:
# do something with the line
如果您确信线条始终格式正确,则获取所需值的最简单方法是使用string split
method。从数据开始的完整代码将会像这样读取。
lines = data.splitlines()
for line in lines:
first, _, second = line.split()
moves.append([int(first), int(second)])