объединять элементы списка вместе, формируя новые списки

#python #python-3.x #list

#питон #python-3.x #Список

Вопрос:

Привет, я новичок в python, но у меня есть интересный вопрос

 x = [5,1, 5, 2, 5, 3]
 

Как мне составить список, например,

 newX = [51, 52, 53] and otherX = [515, 253]
 

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

1. Не используйте list в качестве имени переменной

2. это всего лишь пример, но спасибо вам!

3. Похоже, что вы ожидаете, например, чисел 5 и 1 иметь какое-то отношение к числу 51 . Почему? Можете ли вы выразить эту взаимосвязь в виде математической формулы?

4. Простыми английскими словами, какие, по вашему мнению, шаги вам нужно было бы предпринять, чтобы перейти от ввода к выводу?

5. Я бы, вероятно, использовал цикл для и агрегировал 2s и 3s, но делать это таким образом кажется очень грязным

Ответ №1:

Технически однострочник, хотя и не самый читаемый.

 newList = [int("".join([str(x) for x in oldList[i:i   2]])) for i in range(0, len(oldList), 2)]
 

Мы берем старый список в виде фрагментов из 2 элементов, превращаем их в строки, объединяем их и анализируем результат как int .

Более читаемая версия:

 newList = [
    int("".join([str(x) for x in oldList[i:i   2]])) 
    for i in range(0, len(oldList), 2)
]
 

Для другой версии с тремя вы можете заменить 2 на 3, и это работает так же.