我尝试根据字典mystr = 'AC'
替换d = {'A':'C', 'C':'B'}
中的字符。但是, 我不会立即替换所有内容。 我会逐个按键顺序替换字符(每次替换后我会进行一些计算)。更重要的是, 我无法替换已经替换的字符。
例如:在第一步,我将'A'
替换为'C'
,然后我获得了'CC'
。我使用'CC'
做一些计算,然后进入下一步。在下一步中,我将'C'
替换为'B'
。虽然我在'C'
中有两个'CC'
,但第一个'C'
已被替换。因此,我只替换一个,然后我得到了'CB'
答案 0 :(得分:1)
我的方法是保留mystr = 'AC'
mylist = list(mystr)
flag = len(mystr) * [False]
d = {'A':'C', 'C':'B'}
for key in d.keys():
for ind, char in enumerate(mylist):
if flag[ind] == False and key == char:
mylist[ind] = d[key]
flag[ind] = True
#do some calculation
mystr = "".join(mylist)
print mystr
列表以检测角色是否已经更改。因为字符串是不可变的,所以我已经把它作为一个列表来简化我的任务。
我认为这会对你有所帮助:
<% @locations.each do |loc| %>
<%= params.has_key?(:location) %>
<%= params.has_key?(:location) && params[:location].has_key?(:location_ids) ? params[:location][:location_ids].to_s : "empty" %>
<%= params.has_key?(:location) && params[:location].has_key?(:location_ids) && params[:location][:location_ids].include?(loc.id) %>
<%= check_box_tag("location[location_ids][]" , loc.id, params.has_key?(:location) && params[:location].has_key?(:location_ids) && params[:location][:location_ids].include?(loc.id.to_s) ? loc.id : nil, id: "location_" + loc.id.to_s) %>
<%= label_tag("location_" + loc.id.to_s, loc.name) %>
<% end %>
答案 1 :(得分:0)
也许你需要使用list来保存结果?或者你可以在更换后计算。并使用max position in replace:
background-size: contain;