我已编写代码将输入作为字符串列表
d=["","","","","","","","","",""]
i=0
while(True):
s=input()
d[i]=s
i=i+1
if s=="":
break
但是我无法处理列表d
以获得所需的输出。
d[0]
正在存储Djokovic:Murray:2-6,6-7,7-6,6-3,6-1
。现在我想处理这个字符串(或将其转换为字典)
现在我可以编写代码(使用str.split(",")
函数)来计算;
答案 0 :(得分:0)
这就是你想要的吗?
>>> d=[]
>>> while(True):
... s=raw_input()
... if s=="":break
... temp = [s]
... d.append(temp)
...
a,b,7-6,7-6,6-3
c,d,7-4,7-6,6-2
e,f,6-4,7-6,6-2
>>> d
[['a,b,7-6,7-6,6-3'], ['c,d,7-4,7-6,6-2'], ['e,f,6-4,7-6,6-2']]
这会在输入中生成一个列表项,然后将该列表附加到主列表d
您现在应该能够处理d
编辑:
如果您坚持使用:
和,
两个分隔符,那么您的生活就会变得更加困难,坚持使用一个!
修改上面的简单代码:
d=[]
while(True):
s=raw_input()
if s=="":break
temp = [s]
d.append(temp) #d becomes a list of lists
for item in d: #process individual lists in d
x=item[0].split(",") # break up the list using the delimiter comma
for i in range(0,len(x)): #access each item in x
print x[i]
输入:
德约科维奇,穆雷,2-6,6-7,7-6,6-3,6-1
布罗格斯,史密斯,2-6,6-7,7-6,6-3,6-3
琼斯,Abernathy,6-3,6-3,6-3
输出:
Djokovic
Murray
2-6
6-7
7-6
6-3
6-1
Bloggs
Smith
2-6
6-7
7-6
6-3
6-3
Jones
Abernathy
6-3
6-3
6-3
答案 1 :(得分:0)
由于您的统计信息似乎被空白分隔符分隔,因此您可以使用str.split()
将每个统计信息分隔为一个列表。这是一个演示:
stats = "Djokovic:Murray:2-6,6-7,7-6,6-3,6-1 Murray:Djokovic:6-3,4-6,6-4,6-3"
def compile_stats(stats):
stats_lst = list(stats.split(" ")) # using str.split to
# split the string every time whitespace is found.
return stats_lst
print(compile_stats(stats))
# output:['Djokovic:Murray:2-6,6-7,7-6,6-3,6-1', 'Murray:Djokovic:6-3,4-6,6-4,6-3']
它需要每个统计数据,并使其成为自己独立的列表项。