如何将数据从一个字符串传输到另一个字符串并最终得到相同的结果



所以我在Stack Overflow用户的帮助下编写了这段代码。。

def get_name(string):
return string.replace("+", "").replace("-", "")
def keepTabs(input_list: list):
output = {}
for entry in input_list:
name = get_name(entry)
if name not in output:
output[name] = 0
if "++" in entry:
output[name] += 1
if "--" in entry:
output[name] -= 1
if "->" in entry:
output[name] == [name+1]
return output
print(keepTabs(["Jim--", "John--", "Jordan--", "Jim++", "John--", "Jeff--", "June++", "June->Jim]))

在该代码中;Jim"约翰;等等都以0开始,并且他们根据在哪里获得"0"而获得或失去积分--&";,其从它们中减去一或"1"++&";,这为他们现有的观点增加了一点。。。现在我想编辑这个,这样如果有一个"->quot;例如如果在列表中存在";约翰->Jim";,约翰所有的分数都会加到吉姆的分数上。。。

我试着实现上面代码中所示的它,但它不起作用,所以,我应该做些什么来确保它起作用??

请尽可能使用最简单的代码版本,因为我对此非常陌生:(

我的修订版-

def get_name(string):
return string.replace("+", "").replace("-", "")
def keepTabs(input_list: list):
output = {}
for entry in input_list:
if '->' in entry:
names = entry.split('->')
output[names[1]] = output[names[0]]
output[names[0]] = 0
else:
name = get_name(entry)
if name not in output:
output[name] = 0
if "++" in entry:
output[name] += 1
if "--" in entry:
output[name] -= 1
return output
print(keepTabs(["Jim--", "John--", "Jordan--", "Jim++", "John--", "Jeff--", "June++", "June->Jim]))

我认为不需要使用任何类型的字符串替换。怎么样:

def keepTabs(lst):
output = dict()
for item in lst:
t = item.split('->')
if len(t) == 2:
if t[1] in output:
output[t[1]] += output.get(t[0], 0)
else:
if item.endswith('--'):
x = -1
elif item.endswith('++'):
x = 1
else:
continue
if (name := item[:-2]) in output:
output[name] += x
else:
output[name] = x
return output
print(keepTabs(["Jim--", "John--", "Jordan--", "Jim++", "John--", "Jeff--", "June++", "June->Jim"]))

相关内容

最新更新