Найти - Пользователи
Полная версия: Изменить кортеж
Начало » Python для новичков » Изменить кортеж
1
XoFfiCEr
Запросы к БД в sqlite3 вернули такую структуру:
 [(1, 980, 990, '17.1', '02.12.2014', 1, 'A-12-95'), (2, 1210, 1220, '17.1', '', 1, 'A-78'), (3, 1230, 1240, '17.1', '01.09.2010', 0, 'A-79'), (4, 1280.4, 1290.4, '11.2', '01.09.2010', 0, 'T-78'), (5, 1280.4, 1290.4, '11.2', '', 1, 'T-87'), (6, 1290, 1300, '10.2', '', 0, 'T-86'), (7, 1320.4, 1330.4, '11.2', '', 0, 'T-87'), (8, 1390, 1400, '17.1', '02.12.2014', 0, 'A-12-06'), (9, 2240.4, 2250.4, '17.1', '05.02.2014', 1, 'А-92'), (10, 2470, 2475.2, '17.1', '31.07.2014', 1, 'T-87'), (11, 2560.4, 2570.4, '17.1', '09.12.2015', 1, 'A-05-73'), (12, 2440.4, 2445.6, '17.1', '09.12.2015', 0, 'T-08-86'), (13, 840, 861.2, '12', '12:08:2016', 0, 'проба'), (14, 840, 848.8, '18', '15:08:2016', 1, 'проба'), (15, 1044.8, 1056.4, '16', '15:08:2016', 0, 'проба')]
Судя по скобкам это список кортежей или что то вроде того.
Я кортежи в Питоне вообще не использую кстати, не вижу смысла.
Как то изменить можно чтоб нумерация шла с 0 а не с 1?
т. е. должно быть (0, 980, 990, ‘17.1’, ‘02.12.2014’, 1, ‘A-12-95’) и так далее.
py.user.next
XoFfiCEr
Как то изменить можно чтоб нумерация шла с 0 а не с 1?
  
>>> lst = [(1, 980, 990, '17.1', '02.12.2014', 1, 'A-12-95'),
...        (2, 1210, 1220, '17.1', '', 1, 'A-78'),
...        (3, 1230, 1240, '17.1', '01.09.2010', 0, 'A-79'),
...        (4, 1280.4, 1290.4, '11.2', '01.09.2010', 0, 'T-78'),
...        (5, 1280.4, 1290.4, '11.2', '', 1, 'T-87'),
...        (6, 1290, 1300, '10.2', '', 0, 'T-86'),
...        (7, 1320.4, 1330.4, '11.2', '', 0, 'T-87'),
...        (8, 1390, 1400, '17.1', '02.12.2014', 0, 'A-12-06'),
...        (9, 2240.4, 2250.4, '17.1', '05.02.2014', 1, 'А-92'),
...        (10, 2470, 2475.2, '17.1', '31.07.2014', 1, 'T-87'),
...        (11, 2560.4, 2570.4, '17.1', '09.12.2015', 1, 'A-05-73'),
...        (12, 2440.4, 2445.6, '17.1', '09.12.2015', 0, 'T-08-86'),
...        (13, 840, 861.2, '12', '12:08:2016', 0, 'проба'),
...        (14, 840, 848.8, '18', '15:08:2016', 1, 'проба'),
...        (15, 1044.8, 1056.4, '16', '15:08:2016', 0, 'проба')]
>>> 
>>> out = [(i[0] - 1,) + i[1:] for i in lst]
>>> out
[(0, 980, 990, '17.1', '02.12.2014', 1, 'A-12-95'), (1, 1210, 1220, '17.1', '', 1, 'A-78'), (2, 1230, 1240, '17.1', '01.09.2010', 0, 'A-79'), (3, 1280.4, 1290.4, '11.2', '01.09.2010', 0, 'T-78'), (4, 1280.4, 1290.4, '11.2', '', 1, 'T-87'), (5, 1290, 1300, '10.2', '', 0, 'T-86'), (6, 1320.4, 1330.4, '11.2', '', 0, 'T-87'), (7, 1390, 1400, '17.1', '02.12.2014', 0, 'A-12-06'), (8, 2240.4, 2250.4, '17.1', '05.02.2014', 1, 'А-92'), (9, 2470, 2475.2, '17.1', '31.07.2014', 1, 'T-87'), (10, 2560.4, 2570.4, '17.1', '09.12.2015', 1, 'A-05-73'), (11, 2440.4, 2445.6, '17.1', '09.12.2015', 0, 'T-08-86'), (12, 840, 861.2, '12', '12:08:2016', 0, 'проба'), (13, 840, 848.8, '18', '15:08:2016', 1, 'проба'), (14, 1044.8, 1056.4, '16', '15:08:2016', 0, 'проба')]
>>>
doza_and
XoFfiCEr
изменить кортежи
XoFfiCEr
Я кортежи в Питоне вообще не использую кстати, не вижу смысла.

Смысл кортежа как раз в том что его нельзя изменить. Изменяемые и неизменяемые сущности очень важная концепция в питоне, да и в других языках.

например допустимо
 a={}
a[(1,2)]=3
недопустимо
 a={}
a[[1,2]]=3

XoFfiCEr
doza_and
Я в курсе что кортеж нельзя изменить, но можно же новый создать.
XoFfiCEr
py.user.next
Надо из начального сделать, а не из списка все таки.
py.user.next
XoFfiCEr
Надо из начального сделать, а не из списка все таки.
Так это id'шники из самой базы. Уникальные идентификаторы записей в таблице, через них потом записи из разных таблиц сцепляются в составные записи.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB