Преобразование каждого элемента списка в кортеж
Я конвертирую каждый элемент списка в кортеж, как показано ниже:
l = ['abc','xyz','test']
преобразовать в список кортежей:
newl = [('abc',),('xyz',),('test',)]
На самом деле у меня есть такие ключи, так что для поиска цели мне нужно, спасибо заранее
2 ответа
Решение
Вы можете использовать понимание списка:
>>> l = ['abc','xyz','test']
>>> [(x,) for x in l]
[('abc',), ('xyz',), ('test',)]
>>>
Или, если вы используете Python 2.x, вы можете просто использовать zip
:
>>> # Python 2.x interpreter
>>> l = ['abc','xyz','test']
>>> zip(l)
[('abc',), ('xyz',), ('test',)]
>>>
Однако предыдущее решение не будет работать в Python 3.x, потому что zip
теперь возвращает почтовый объект. Вместо этого вам нужно явно сделать результаты списком, поместив их в list
:
>>> # Python 3.x interpreter
>>> l = ['abc','xyz','test']
>>> zip(l)
<zip object at 0x020A3170>
>>> list(zip(l))
[('abc',), ('xyz',), ('test',)]
>>>
Я лично предпочитаю понимание списка перед этим последним решением.