Преобразование каждого элемента списка в кортеж

Я конвертирую каждый элемент списка в кортеж, как показано ниже:

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',)]
>>>

Я лично предпочитаю понимание списка перед этим последним решением.

Просто сделай это:

newl = [(i, ) for i in l]
Другие вопросы по тегам