|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
На вход функции подается кортеж. Он может быть разной размерности. Такой С=(1,2,6,7,9,0,0, .........5,6,87) и так len до 100 тыщ значений. Или такой - С=((1,2,6,7,9,0,0, .........5,6,87),(1,2,6,7,9,0,0, .........5,6,87),(1,2,6,7,9,0,0, .........5,6,87), ........) тоже до 100 тыщ строк. В первом случае доступ к С[i], во втором C[j][i]. Можно-ли напрямую определить размерность кортежа? Во втором случае, да - len(C[0]) - не вопрос. С одномерным кортежем идет ошибка - через try делать? А напрямую определить как-то можно, без try или циклов? "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 20:38 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
Через try все нормально получается. Но все-таки интересно, прямые методы имеются? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 21:16 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
Ну, вот так, собственно Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 21:21 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
Для данного случая можно как-то так попробовать Код: python 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 21:45 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
vkle, Да, только Код: python 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 22:15 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
YUBA, Верно, тут Вы правы. Для более общего случая, вероятно, лучше делать проверку типа не на целое, а на кортеж с соответствующей перестановкой левой и правой части. Ну, на случай если строка в c[0] окажется или флоат. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 22:38 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
vkle, да, недосмотрел. int там действительно не катит. В кортеже зоопарк типов. Тогда надо по другому возвращать. Для int ->0, для кортежей размерность. Иначе return 1 неоднозначна. Пока try пусть поработает.) Потом переделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:10 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
YUBA Для int ->0, для кортежей размерность. Иначе return 1 неоднозначна. ошибся, конечно же не для инт, а для вложенного кортежа. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:16 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
YUBA, тьфу ты, вечер, однако. 0, если нет вложенного кортежа. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 23:18 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
YUBAВ кортеже зоопарк типов.В смысле, в "корневом" кортеже могут быть в куче строки, числа, кортежи разной длины (которые тоже из всякого состоят!) и т.д.? Если так, то получается какой-то общий случай, для которого и исходный пример не годится, и сама постановка вопроса не вполне понятна становится. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 00:26 |
|
Python получить размерность кортежа?
|
|||
---|---|---|---|
#18+
vkle, там ничего страшного. Все вложенные кортежи одинаковой длины, по расположению типов все совпадают - типа строки из БД. Но возможны данные только из одного столбца, без вложенных кортежей. В этом одном столбце м.б. int or float, ничего другого. Единственное, что не подумал, это ((1,),(55,).......(67,),), но уже решил этот вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2018, 01:49 |
|
|
start [/forum/topic.php?fid=23&msg=39715207&tid=1460145]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
307ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 416ms |
0 / 0 |