Python: у меня есть список, и я хочу добавить его к каждому элементу списка

#python #loops #integer

#python #циклы #целое число

Вопрос:

Давайте возьмем пример: у меня есть список: 1, 2, 3, 4, 5 я хочу добавить каждый элемент, который будет добавлен друг к другу. Например, 1 2, 1 3, 1 4, 1 5, 2 1, 2 3, 2 4, 2 5, и так далее. Таким образом, на выходе должно получиться что-то вроде 3, 4, 5, 6, 3, 5, 6, 7 и так далее.

Может кто-нибудь, пожалуйста, помочь мне решить эту проблему?

Комментарии:

1. Покажите нам, что вы пробовали до сих пор

2. Используйте вложенный цикл for и продолжайте добавлять добавленное значение в список.

Ответ №1:

 from itertools import starmap, permutations
from operator import add

values = [1, 2, 3, 4, 5]

print(list(starmap(add, permutations(values, 2))))
 

Вывод:

 [3, 4, 5, 6, 3, 5, 6, 7, 4, 5, 7, 8, 5, 6, 7, 9, 6, 7, 8, 9]
>>> 
 

Ответ №2:

используйте itertools.permutations :

 from itertools import permutations

my_list = [1, 2, 3, 4, 5]
new_list = [x y for x,y in permutations(my_list, 2)]
 

Вывод:

 [3, 4, 5, 6, 3, 5, 6, 7, 4, 5, 7, 8, 5, 6, 7, 9, 6, 7, 8, 9]
 

Ответ №3:

Вы можете сделать что-то вроде этого.

 def yar(int_list):

    har = []

    for num in int_list:
    
        fiddly = []
        
        for value in int_list:
            
            add = num
            
            add  = value
            
            fiddly.append(add)
        
        har.append(fiddly)
    
    return har

fee = [1, 2, 3, 4]
print(yar(fee))

# would output [[2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8]]
 

Хлеб с маслом для решения этой проблемы — вложенный for цикл. Для каждого числа в списке ( fee в данном случае) перебирайте каждое число в списке fee и добавляйте его к значению, хранящемуся во add внешнем цикле, затем сохраняйте это значение в списке (то есть fidddly ).

Я добавил har список, чтобы пользователи могли получать доступ к комбинациям с каждой итерации. (индекс 0 для комбинаций из 1, индекс 1 для комбинаций из 2 и т. Д.)

Вы можете каким-то образом сделать это пониманием списка, я почему-то уверен в этом. Я просто еще не очень хорошо разбираюсь в этом, но этот код все еще работает.

Ответ №4:

Если все ваши элементы различны, вы можете сделать это в понимании списка, чем добавляет каждое число со всеми числами, кроме самого себя:

 L = [1, 2, 3, 4, 5]

S = [ a b for a in L for b in L if a!=b]

# [3, 4, 5, 6, 3, 5, 6, 7, 4, 5, 7, 8, 5, 6, 7, 9, 6, 7, 8, 9]
 

Если в списке могут быть повторяющиеся числа, то вам нужно исключить добавление чисел к самим себе на основе их индексов:

 [ a b for i,a in enumerate(L) for j,b in enumerate(L) if i!=j]