Я хочу изменить эту функцию, используя понимание списка, чтобы оно имело 1 или строки. функция преобразует список, содержащий список, в кортеж, содержащий кортежи внутри
def lol(lista): novotuplo = () for i in range(len(lista)): novotuplo += (tuple(lista[i]),) return novotuplo
Вы можете map элементы в конструкторе tuple():
map
tuple()
tuple(map(tuple, lista))
Я думаю, что это должно сделать.
novotuplo = tuple(tuple(item) for item in lista)
Если вы хотите это в функциональной форме, это один из способов. Вам не нужен индекс здесь, потому что lst in lista перебирает элементы напрямую.
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,))
Это должно работать:
lista = [[1,2], [3,4], [5,6]] print(tuple(tuple(i) for i in lista)) # ((1, 2), (3, 4), (5, 6))
Более четкое объяснение приведенного выше понимания списка - создать tuple всех элементов в lista, преобразованных в tuple.
tuple
lista