Преобразование кортежа в список - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь преобразовать этот кортеж в список, однако, когда я запускаю этот код:

mytuple=('7578',), ('6052',), ('8976',), ('9946',)
List=[]
for i in mytuple:
    Start,Mid,End = map(str, mytuple.split("'"))
    List.append(Mid)
print(List)

Я получаю эту ошибку:

AttributeError: 'tuple' object has no attribute 'split'

Вывод должен быть:

[7578, 6052, 8976, 9946]

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

это то, что вы ищете

mytuple = (('7578',), ('6052',), ('8976',), ('9946',))
result = [int(x) for x, in mytuple]
print(result)
0 голосов
/ 29 ноября 2018

Я бы использовал itertools.chain.from_iterable (что приводит к ошибкам на стороне слишком большого многословия, чем слишком мало):

from itertools import chain
result = [int(x) for x in chain.from_iterable(mytuple)]
# vs         ... for x, in mytuple]; the comma is easy to miss

Где-то между двумя крайностями будет

result = [int(x) for x in chain(*mytuple)]
0 голосов
/ 29 ноября 2018

Если я правильно понял, вы хотите, чтобы вы:

mytuple = ('7578',), ('6052',), ('8976',), ('9946',)
result = [e for e, in mytuple]
print(result)

Выход

['7578', '6052', '8976', '9946']
...