Использование понимания списка, чтобы уменьшить функцию, которая преобразует список списков в кортежи - PullRequest
0 голосов
/ 31 октября 2018

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

def lol(lista):
        novotuplo = ()
            for i in range(len(lista)):
                novotuplo += (tuple(lista[i]),)

            return novotuplo

Ответы [ 4 ]

0 голосов
/ 31 октября 2018

Вы можете map элементы в конструкторе tuple():

tuple(map(tuple, lista))
0 голосов
/ 31 октября 2018

Я думаю, что это должно сделать.

novotuplo = tuple(tuple(item) for item in lista)
0 голосов
/ 31 октября 2018

Если вы хотите это в функциональной форме, это один из способов. Вам не нужен индекс здесь, потому что lst in lista перебирает элементы напрямую.

lista = [[1],[2],[3]]
def lol(lista):
    novotuplo = tuple(tuple(lst) for lst in lista)
    return novotuplo

print (lol(lista))
# ((1,), (2,), (3,))
0 голосов
/ 31 октября 2018

Это должно работать:

lista = [[1,2], [3,4], [5,6]]
print(tuple(tuple(i) for i in lista))
# ((1, 2), (3, 4), (5, 6))

Более четкое объяснение приведенного выше понимания списка - создать tuple всех элементов в lista, преобразованных в tuple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...