Ваша проблема - ваш селектор. Поскольку sizzle
работает справа налево, он просто запрашивает все LI elements
, у которых есть UL element
как прямой родительский элемент (обычно это всегда так).
Итак, разделите свой ULs
.
$('ul').each(function(){
var $lis = $(this).children('li');
for(var i = 0, len = $lis.length; i < len; i+=3){
$lis.slice(i, i+3).wrapAll("<div class='new'></div>");
}
});
Используйте словарь с пониманием и str.join
:
translateDict = {
"A" : "T",
"C" : "G",
"G" : "C",
"T" : "A"
}
s1 = "AAATCGATTGAT"
reconstructed = "".join(translateDict.get(s, s) for s in s1)
Здесь у вас есть живой пример
Обратите внимание на использование [113 ] ; если буквы нет в словаре, мы просто оставим ее как есть.
Как подсказывает @ bravosierra99, вы также можете просто использовать str.translate
:
reconstructed = s1.translate(string.maketrans(translateDict))