2016-12-30 3 views
-3

У меня есть список целых чисел, и я хочу вычесть 26 из любого из элементов, если они больше 27. Например: если один из элементов списка было 32, он вернется (32-26) = 6, потому что это больше, чем 27.В списке целых чисел, как вычесть число из одного из элементов, если оно не соответствует условию

Так сказать, у меня был список целых чисел песни1 = [4,34, 56,20 ...] Как я могу проверить каждое значение по очереди, чтобы увидеть, превышает ли оно 27, а затем вычесть 26 для формирования нового списка?

Спасибо :)

+0

Вы хотите, чтобы 56 превращались в 29 или 2? – TigerhawkT3

+4

И, конечно, вы что-то пробовали? SO не является кодирующей услугой. – TigerhawkT3

ответ

0

Для проверки любого значения Greate чем 27 вы могли бы итерации по списку и проверить, где это больше, и только затем вычесть 26 из пункта:

new_list = [] 
for item in your_list: 
    if item > 27: 
     new_list.append(item - 26) # appends the reduced item. 
    else: 
     new_list.append(item) # append the item without change. 

или если вы хотите вычесть 26, как если он выше 27, вы можете сделать это с помощью:

new_list = [] 
for item in your_list: 
    while item > 27: 
     item -= 26 
    new_list.append(item) 
1
>>> list1=[4,34,56,20] 
>>> new_list = [item - 26 if item > 27 else item for item in list1] 
>>> new_list 
[4, 8, 30, 20] 

Вы могли бы думать «но ждать, я хочу, чтобы вычесть 26 из 56, пока это не меньше, чем 28, так что это должно быть 4, а не 30». В этом случае вы можете использовать модульную арифметику.

>>> list1=[4,34,56,20] 
>>> new_list = [((item-2)%26)+2 for item in list1] 
>>> new_list 
[4, 8, 4, 20] 
Смежные вопросы