Как передать массив в функцию в Python?
Массив — это объект, его можно передать в функцию как и любой другой объект (число, строку и т.д.) в качестве аргумента.
# можно передать напрямую print([1, 2, 3, 4]) # [1, 2, 3, 4] # можно после присваивания переменной fruits = ['apple', 'banana', 'orange'] print(fruits) # ['apple', 'banana', 'orange']
передача массива в функцию на питоне [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 4 года назад .
Как на питоне передать массив на выход в функцию? Делаю минимализацию по методу квайна, там очень полезно будет это использование.
Отслеживать
задан 5 окт 2019 в 5:35
Артём Подковыров Артём Подковыров
35 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
Так же, как аргумент любого другого типа.
5 окт 2019 в 5:59
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Под массивом вы скорее всего имеете в виду list? Не совсем понятно в чем проблема его передачи в функцию:
def my_function(some_list): #code pass my_function([1, 2, 3, 4, 5])
Или предварительно записав его в переменную
my_list = [1, 2, 3, 4, 5] my_function(my_list)
Отслеживать
ответ дан 5 окт 2019 в 8:04
Константин Комиссаров Константин Комиссаров
2,526 15 15 серебряных знаков 34 34 бронзовых знака
invalid syntax же!
5 окт 2019 в 16:35
@andreymal где? почему?
5 окт 2019 в 16:37
Вы сами-то пробовали первый пример запустить?
5 окт 2019 в 16:38
@andreymal, а, все, тупанул, сейчас поправлю)
5 окт 2019 в 16:39
Да и второй пример тоже просто не работает, потому что локальная переменная my_list перекроет глобальную, и глобальный список будет недоступен внутри функции
5 окт 2019 в 16:40
- python
- массивы
- функции
- return
-
Важное на Мете
Похожие
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как передать массив в функцию
Если вы начинающий программист, но уже не совсем новичок, и знаете, что такое подпрограммы, то вы также знаете, что в эти подпрограммы можно передавать параметры.
И, продолжая изучать программирование, вы неизбежно столкнётесь с необходимостью передавать в подпрограммы параметры, которые представляют собой сложные типы данных, такие как массивы.
И очень часто, пытаясь передать массив в процедуру или функцию, новички сталкиваются с очень неприятным для них случаем — они просто не могут это сделать. Потому что вот такая попытка:
function TestFunc(M : array[1..8] of Byte) : boolean;
окажется неудачной — программа не будет создана, а компилятор выдаст ошибку:
А дело в том, что передавать массивы в подпрограммы таким образом нельзя!
Как же быть? Не отказываться же от этого? Ведь передавать массивы в подпрограммы приходится довольно часто!
Но как это сделать?
Есть два способа:
- Передать в функцию указатель на массив.
- Создать новый тип данных.
Первый способ рассматривать не будем, потому что для новичка он может оказаться малопонятным. Если кому любопытно, то у меня есть книга, посвящённая указателям.
Рассмотрим второй способ. Он очень прост — надо создать пользовательский тип данных, и передавать в функцию уже параметр, имеющий этот тип. И таким образом передать массив в функцию в Паскале, Delphi, Lazarus (да и в большинстве других языков программирования) можно очень даже легко:
program test; type TMas = array[1..8] of Byte; //Создаём новый тип var GM : TMas; //Переменная нового типа //Теперь мы можем передать массив в функцию function TestFunc(M : TMas) : boolean; begin Result := TRUE; end; begin TestFunc(GM); ReadLn; end.
Передача массива в функцию
условие задачи: Объявить два целочисленных массива с разными размерами и написать функцию, которая заполняет их элементы значениями и показывает на экран. Функция должна принимать два параметра – массив и его размер.
вот код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
def Fill_array(arr, brr, length): arr = [random.randint(0, 25) for _ in range(length)] brr = [random.randint(0, 25) for _ in range(length)] pass def Show_array(arr, brr, length): for i in range(length): print(arr[i], end='\t') for i in range(length): print(brr[i], end='\t') pass length = int(input("Укажите кол-во срок: ")) arr = [] brr = [] Fill_array(arr, brr, length) Show_array(arr, brr, length)
Делал как на с++ , но видимо тут так не работает. Помогите пожалуйста.
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Передача массива в функцию используя указатель на функцию
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать.
Передача двухмерного массива из функцию в функцию
Допустим у меня есть функция, в которой "генерируется" массив. Но нужно его передать в другую.
Передача массива в функцию и возврат другого массива из неё
Чем мне нравится ВБ.НЕТ — так это очень грамотной, простой и удобной работой с массивами. Они.
Передача двухмерного массива в функцию и изменение элемента массива
Такая проблема! Нужно передать в функцию двухмерный массив и изменить на елемент который равен 0 и.
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение было отмечено Ivan _pupkin как решение
Решение
1 2 3 4 5 6 7 8 9 10
>>> arr = [] >>> brr = [] >>> def Fill_array(arr, brr, length): arr[:] = [random.randint(0, 25) for _ in range(length)] brr[:] = [random.randint(0, 25) for _ in range(length)] >>> Fill_array(arr, brr, 10) >>> arr [16, 18, 24, 15, 10, 17, 15, 12, 18, 5] >>>
Сообщение от Ivan _pupkin
Делал как на с++
А зачем? На python, кстати, в названиях функций верхний регистр не используют.
P.P.S. И зачем использовать pass не по назначению?
1727 / 967 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
Garry Galler, А почему нет импорта модуля random. Здесь не полный код, а только фрагмент?
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение от Viktorrus
только фрагмент
Фрагмент показывающий как присвоить списку значение по ссылке: a[:]=.
import random просто не скопировал сюда из IDLE.
Регистрация: 17.12.2018
Сообщений: 257
Сообщение от Garry Galler
P.P.S. И зачем использовать pass не по назначению?
В видеоуроке говорилось, что если функция ничего не возвращает, то надо писать pass.
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение было отмечено Ivan _pupkin как решение
Решение
Сообщение от Ivan _pupkin
что если функция ничего не возвращает, то надо писать pass.
Неверно. Функция всегда что-то возвращает. Если мы не указываем явного возврата — функция вернет объект None.
А ключевое слово pass используется как заполнитель тела функций (или операторов), которые вообще не содержат ни одной инструкции:
def dummy(): pass # пустая функция-заглушка
так как в Python запрещены пустые блоки.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Передача массива структур в функцию не указывая размера массива
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в.
Передача массива в функцию, и получения массива из функции
Есть Unit1, который использует функцию из Unit2, имеющую следующий вид: function.
Передача массива в функцию
Как записать данные в массив, который в функции и после вызова функции получить эти данные. По.
Передача массива в функцию
Написал такой код. Прога выводит всё правильно как и должна: минимальный элемент массива, сумма.
Передача массива в функцию
Какие есть способы для передачи массивы в функцию. И как передать массив с указателем на него чтобы.
Передача массива в функцию
Помогите разобраться как правильно вписать простейший массив вфункцию #include<iostream>.