userId
实施例: apply_coder(" Hello,world!",build_encoder(3))应该返回
'!Khoor,czruog'
相反,它会返回
"你好,世界!"
但是,如果我在if条件下使用打印字母语句,则会打印正确的字母。
答案 0 :(得分:3)
重新绑定当前的迭代变量并不会修改列表(希望 - 这将是一个非常烦人的副作用)。
此外,将coder_dict
重新绑定到def apply_coder(text, coder):
return ''.join(coder.get(letter, letter) for letter in text)
是没用的,您可以迭代字符串。简而言之,解决方案是使用修改后的字母重建列表......既然您不需要列表本身,您也可以使用生成器表达式:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
if (self.resultSearchController.active) {
cell.textLabel?.text = filteredTableData[indexPath.row]
return cell
}
else {
cell.textLabel?.text = TableTitle[indexPath.row]
return cell
}
}
答案 1 :(得分:0)
通过更改letter
您不更改列表text_list
中的任何内容。您应该构建一个新列表而不是编码结果:
def apply_coder(text, coder):
ret_val = []
coder_dict = coder
for letter in text:
if letter in coder_dict:
letter = coder_dict[letter]
print letter
ret_val.append(letter)
return ''.join(ret_val)
这也意味着您首先不必将text
列入名单。
答案 2 :(得分:0)
语句letter = coder_dict[letter]
只需查找letter
中的coder_dict
密钥,并将该值分配给letter
,但不会更改text_list
。它打印那封信。但是,您根本不会修改enumerate
。有几种方法可以做到这一点,例如使用def apply_coder(text, coder):
text_list = list(text)
for val,letter in enumerate(text_list):
text_list[val] = coder.get(letter, letter)
return ''.join(text_list)
:
list
这将枚举join()
,然后在可能的情况下使用字母查找重新分配每个索引元素,否则重新分配字母本身,然后list
return
和function countonBG(range,colorref) {
var sheet = SpreadsheetApp.getActiveSheet();
var color = sheet.getRange(9, 1).getBackground();
var range = sheet.getRange(1, 1, 7, 6);
var rangeVal = range.getValues();
var count = 0;
var allColors = range.getBackgrounds();
Logger.log(allColors);
for (var i = 0; i < rangeVal.length; i++) {
for (var j = 0; j < allColors[0].length; j++) {
if (allColors[i][j] == color) count += 1;
}
}
Logger.log(count);
}
。
答案 3 :(得分:0)
这与不久前提出的关于加密/交换信件的问题非常类似。
以下代码由alec_djinn
提供decrypted = 'abcdefghijklmnopqrstuvwxyz' #normal alphabet
encrypted = 'MNBVCXZLKJHGFDSAPOIUYTREWQ' #your "crypted" alphabet
#Encription
text = 'cryptme' #the string to be crypted
encrypted_text = ''
for letter in text:
encrypted_text += encrypted[decrypted.find(letter)]
print encrypted_text
#will print BOWAUFC
#Decription
text = encrypted_text #"BOWAUFC" in this example
decrypted_text = ''
for letter in text:
decrypted_text += decrypted[encrypted.find(letter)]
print decrypted_text
#will print cryptme
下面还提供了指向此链接的链接。