у нас есть два метода:
первый:
у меня есть два изображения с уникальным классом или идентификатором, и я хочу показать их на кругах щелчка:
[117 ]
<div id="sidle">
<img class="image" id="img-SmallStreet" src="img/nelson-street/SOKER.jpg" alt>
<img class="image" id="img-BellLane" src="img/nelson-street/VORTER.jpg"alt>
</div>
<circle class="circles" id="SmallStreet" />
<circle class="circles" id="BellLane" />
<script>
$(document).ready(function(){
$("#SmallStreet").click(function(){ $("#img-SmallStreet").fadeIn(); });
$("#BellLane").click(function(){ $("#img-BellLane").fadeIn(); });
});
</script>
или простым и лучшим способом:
<div id="sidle">
<img class="image" id="img-SmallStreet" src="img/nelson-street/SOKER.jpg" alt>
<img class="image" id="img-BellLane" src="img/nelson-street/VORTER.jpg"alt>
</div>
<circle class="circles" id="SmallStreet" />
<circle class="circles" id="BellLane" />
<script>
$(document).ready(function(){
$(".circles").click(function(){
$id = $(this).attr('id');
$("#sidle #"+id).fadeIn();
});
});
</script>
У меня много изображений, и я хочу показать их:
<script>
$(document).ready(function(){
let index = 0;
let lenght = $(".img").length;
$(".circles").click(function(){
$index = $(this).index();
$("img").hide();
$("img").eq($index).fadeIn();
$index +=1;
if($index >= length) $index = 0;
});
});
</script>
A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
Если вам нужна функция:
def split_list(a_list):
half = len(a_list)//2
return a_list[:half], a_list[half:]
A = [1,2,3,4,5,6]
B, C = split_list(A)
Хотя приведенные выше ответы являются более или менее правильными, вы можете столкнуться с проблемами, если размер вашего массива не делится на 2, в результате чего a / 2
, будучи нечетным, является плавающей точкой в python 3.0, а в более ранней версии, если вы указали из __future__ import Division
в начале твой сценарий В любом случае вам лучше пойти на целочисленное деление, то есть a // 2
, чтобы получить «прямую» совместимость вашего кода.
Использование нарезки списка . Синтаксис в основном my_list [start_index: end_index]
>>> i = [0,1,2,3,4,5]
>>> i[:3] # same as i[0:3] - grabs from first to third index (0->2)
[0, 1, 2]
>>> i[3:] # same as i[3:len(i)] - grabs from fourth index to end
[3, 4, 5]
Чтобы получить первую половину списка, вы переходите от первого индекса к len (i) // 2
(где //
- это целочисленное деление - поэтому 3 // 2 даст результат с плавающей точкой
1 вместо недопустимого индекса списка
1.5`):
>>> i[:len(i)//2]
[0, 1, 2]
. и поменяйте местами значения, чтобы получить вторую половину:
>>> i[len(i)//2:]
[3, 4, 5]
def splitter(A):
B = A[0:len(A)//2]
C = A[len(A)//2:]
return (B,C)
Я тестировал, и для принудительного деления int в python 3 требуется двойной слеш. Мой оригинальный пост был верным, хотя почему-то сломался в Опере wysiwyg.
Несколько более общее решение (вы можете указать количество нужных вам частей, а не просто разделить «пополам») :
РЕДАКТИРОВАТЬ : обновленный пост для обработки нечетных длин списка
РЕДАКТИРОВАТЬ2 : снова обновить пост на основе информативных комментариев Бриана
def split_list(alist, wanted_parts=1):
length = len(alist)
return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts]
for i in range(wanted_parts) ]
A = [0,1,2,3,4,5,6,7,8,9]
print split_list(A, wanted_parts=1)
print split_list(A, wanted_parts=2)
print split_list(A, wanted_parts=8)
f = lambda A, n=3: [A[i:i+n] for i in range(0, len(A), n)]
f(A)
n
- предопределенная длина массивов результатов