numbers = ((10, 10, 10, 12), (30, 45, 56, 45), (81, 80, 39, 32), (1, 2, 3, 4), (90, 10))
x = [sum(list(i)) / len(list(i)) for i in numbers]
for i in x:
i = tuple(i)
print(tuple(i))
Почему никак не получается преобразовать элементы списка в кортежи, а затем сам список в кортеж? И откуда взялся float? Как можно сделать проще?
Python
Программа в Пайтоне.....
Давайте разберёмся с вашим кодом:
1. В строке `x = [sum(list(i)) / len(list(i)) for i in numbers]` вы вычисляете среднее арифметическое каждого кортежа в списке `numbers`. Так как вы делите `sum(list(i))` на `len(list(i))`, результат этой операции всегда будет `float`.
2. В строке `i = tuple(i)` вы пытаетесь преобразовать `i` (который является числом с плавающей точкой) в кортеж. Но это действие неверное, потому что числа с плавающей точкой не могут быть напрямую преобразованы в кортежи.
Давайте исправим ваш код:
1. Преобразуем каждый элемент списка `x` в кортеж.
2. Преобразуем весь список `x` в кортеж.
Вот исправленный код:
```python
numbers = ((10, 10, 10, 12), (30, 45, 56, 45), (81, 80, 39, 32), (1, 2, 3, 4), (90, 10))
# Вычисляем среднее для каждого кортежа и сохраняем в новом списке
x = [sum(i) / len(i) for i in numbers]
# Преобразуем числа в кортежи и затем весь список в кортеж
result = tuple((value,) for value in x)
print(result)
```
Если вы хотите, чтобы результат не содержал чисел с плавающей точкой (float), можно округлить значения:
```python
x = [round(sum(i) / len(i)) for i in numbers]
```
Этот код будет давать вам список средних значений для каждого кортежа из `numbers`, и затем преобразует весь список в кортеж кортежей.
1. В строке `x = [sum(list(i)) / len(list(i)) for i in numbers]` вы вычисляете среднее арифметическое каждого кортежа в списке `numbers`. Так как вы делите `sum(list(i))` на `len(list(i))`, результат этой операции всегда будет `float`.
2. В строке `i = tuple(i)` вы пытаетесь преобразовать `i` (который является числом с плавающей точкой) в кортеж. Но это действие неверное, потому что числа с плавающей точкой не могут быть напрямую преобразованы в кортежи.
Давайте исправим ваш код:
1. Преобразуем каждый элемент списка `x` в кортеж.
2. Преобразуем весь список `x` в кортеж.
Вот исправленный код:
```python
numbers = ((10, 10, 10, 12), (30, 45, 56, 45), (81, 80, 39, 32), (1, 2, 3, 4), (90, 10))
# Вычисляем среднее для каждого кортежа и сохраняем в новом списке
x = [sum(i) / len(i) for i in numbers]
# Преобразуем числа в кортежи и затем весь список в кортеж
result = tuple((value,) for value in x)
print(result)
```
Если вы хотите, чтобы результат не содержал чисел с плавающей точкой (float), можно округлить значения:
```python
x = [round(sum(i) / len(i)) for i in numbers]
```
Этот код будет давать вам список средних значений для каждого кортежа из `numbers`, и затем преобразует весь список в кортеж кортежей.
Алексей Клешнин
GPT Chat
Ivan .
Благодарю, а почему числа напрямую не могут быть преобразованы в кортежи? В чем здесь логика? Как и непонятно, зачем, например, в Пайтоне строки сделали неизменяемыми... Есть ли в этом смысл или просто так вышло, а переделывать не стали?
В цикле ты изменяешь только переменную i. Если хочешь менять исходный список, то нужно это делать либо какими-то in-place методами объекта (но тут подходящих нет) либо через индексы.
float - потому что ты делишь число на число обычным делением. Если хочешь целочисленное, то используй //
float - потому что ты делишь число на число обычным делением. Если хочешь целочисленное, то используй //
numbers = ((10, 10, 10, 12), (30, 45, 56, 45), (81, 80, 39, 32), (1, 2, 3, 4), (90, 10))
x = tuple((sum(list(i)) / len(list(i)),) for i in numbers)
print(tuple(map(lambda x : (mean(x),),numbers))) # mean from statistics
> ((10.5,), (44,), (58,), (2.5,), (50,))
Похожие вопросы
- Скиньте код программы на пайтоне. Небольшой. Строк на 30
- Пайтон. Программа for while
- Программирование, пайтон программа.
- Что лучше всего выбрать:1с или Пайтон?Пайтон выглядит поперспективнее, а 1с устарел( по моему новичковому взгляду )
- программа на языке пайтон
- Программирование пайтон, с чего начать ?
- Пайтон мучаюсь уже долго потому что уже 2 день на пайтоне но фига неправилно пишу помогите пж
- Задача 2. Дзен Пайтона
- Со скольки лет лучше изучать программирование? И какой лучше всего, пайтон?
- Сложно выучить язык Пайтона?