def test_code(message):
msg_list = message.split(',')
for item in msg_list:
empty_dict = {}
if item.find('=') != -1:
split_str = [char.strip("'") for char in msg_list[
msg_list.index(item)].split('=')]
if split_str[1].find('.') != -1:
empty_dict.update({'test': [1, 2]})
else:
empty_dict.update({'test': [3, 4]})
elif item.find('>') != -1:
split_str = [char.strip("'") for char in msg_list[
msg_list.index(item)].split('>')]
if split_str[1].find('.') != -1:
empty_dict.update({'test': [5, 6]})
else:
empty_dict.update({'test': [7, 8]})
return empty_dict
那么我的代码就是这样做的:
它采用字符串作为输入格式:a.name = o.name,a.year> o.year 它将它拆分为逗号并给出: [ 'a.name = o.name', 'a.year> o.year'] 现在它遍历列表中的每个项目,如果它在项目中找到'='字符 它将项目拆分为'='字符并给出: ['a.name','o.name'] 现在,如果第1个索引有一个'。'在它(在这种情况下是o.name),它用{'test'更新空列表:[1,2]} 如果它没有。而不是用{'test':[3,4]}
更新字典现在empty_dict = {'test':[1,2]}
现在转到列表中的下一个项目'a.year> o.year',如果它找到了 '>'列表中的字符然后将其拆分为&gt ;.我们得到:
['a.year','o.year']
如果索引1处的元素具有'。'它使用{'test':[5,6]}更新列表,否则更新为{'test:[7,8]}
现在,当我在此处运行我的代码时:
>> test_code("a.name=o.name,a.year>o.year")
{'test': [1, 2]}
它应该给出的不正确,{'test':[5,6]}
我做错了什么?
答案 0 :(得分:3)
你的return
有太多缩进。您在for
循环的第一次迭代后返回。
答案 1 :(得分:1)
return
应与def
的缩进相同,否则您将返回每item