написать кортежи внутри списка вместо другого lst - PullRequest
0 голосов
/ 31 марта 2019

Я запускаю приведенный ниже код, и он не работает, за исключением списка внутри списка.То, что я хочу, чтобы мой результат был кортежей внутри списка, как внутри скобок.Я попытался написать скобки вместо [], но получаю синтаксическую ошибку.

import xlrd

loc= (r"C:\Users\USER\Documents\MATLAB/results.xlsx")

book = xlrd.open_workbook(loc)

trans_agg= [[sheet.cell_value(r, c) for c in range (1,4)]for r in range(1,sheet.nrows)];

print (trans_agg)

что я получаю в результате;

[[-38.9681738617398, 35.220378959142636, 5.072061633983768], [0.3058390201478544, -32.91896886230741, 5.0755459371576075], [0.16656016242917882, 37.047877143990405, 5.08026752912042]]

что я на самом деле хочу;

[(-38.9681738617398, 35.220378959142636, 5.072061633983768), (0.3058390201478544, -32.91896886230741, 5.0755459371576075), (0.16656016242917882, 37.047877143990405, 5.08026752912042)]

1 Ответ

1 голос
/ 31 марта 2019

Вы должны заменить в своем понимании списка квадратные скобки для вызова функции tuple

trans_agg= [tuple(sheet.cell_value(r, c) for c in range (1,4))
            for r in range(1, sheet.nrows)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...