Вопрос по python – Как извлечь данные кортежа в формат одного элемента

2

Я получаю хорошие результаты от следующего, но как извлечь эти данные из кортежа? Другими словами, как мне очистить данные?

Вот данные из базы данных у меня закончились.

<code>>>> policy_id = ((2309L,), (118L,), (94L,))
>>> for i in policy_id:
        print i


(2309L,)
(118L,)
(94L,)
</code>

Но я хочу результат как:

<code>2309
118
94
</code>
с помощью ответов, приведенных ниже, вы сможете понять, как сделать следующее: «Я хочу, чтобы результат был». gefei

Ваш Ответ

6   ответов
3
>>> from itertools import chain
>>> policy_id = ((2309L,), (118L,), (94L,))
>>> for i in chain.from_iterable(policy_id):
        print i


2309
118
94
11
policy_id = ((2309L,), (118L,), (94L,))
for i in policy_id:
    print i[0]  
0

Другой способ, используя карту

map(lambda x: str(x[0]), policy_id)

Если вы хотите новые строки, то

"\n".join(map(lambda x: str(x[0]), policy_id))

2

Понятие, которое мне нравится, которое может запутать с самого начала, заключается в следующем:

Python2

policy_id = ((2309L,), (118L,), (94L,))
for i, in policy_id:
    print i

Python3

policy_id = ((2309,), (118,), (94,))
for i, in policy_id:
    print(i)

, послеi распаковывает элемент одноэлементного кортежа (не работает для кортежей с большим количеством элементов, чем один).

1
>>> policy_id = ((2309L,), (118L,), (94L,))
>>> print("\n".join(str(x[0]) for x in policy_id))
2309
118
94
2
print '\n'.join(str(x[0]) for x in policy_id)
нет необходимости использовать списки[] здесь используйте генератор.
Благодарю. исправленный.

Похожие вопросы