python函數參數是數組
Ⅰ python定義函數最後返回值是一個數組,請問調用函數的時候怎麼將結果取出
使用返回值的方法有兩種:
可以直接把調用的函數作為變數使用
可以用調用函數給一個變數賦值
第一種情況見如下例子:
l = [1,2,3,4,5]
def add_element(list, element):
list.append(element)
return list
printadd_element(l, 6)
# >>>[1,2,3,4,5,6]
printadd_element(l, 6)[5]
# >>> 6
第二種情況:
l1 =add_element(l, 6)
print l1
# >>>[1,2,3,4,5,6]
print l1[5]
# >>> 6
注意: 以上例子都是應用於python 2.x
Ⅱ python 調用 C++的DLL,函數參數是數組怎麼處理
給你一個例子看看,你就知道怎麼做了
C++的介面
typedef struct
{
unsigned long DeviceType;
int Handle;
int NumberOfClients;
int SerialNumber;
int MaxAllowedClients;
}NeoDevice;
int _stdcall icsneoFindNeoDevices(unsigned long DeviceTypes, NeoDevice *pNeoDevices, int *pNumberOfDevices);
Python調用的代碼:
class NeoDevice(Structure):
_fields_ = [("DeviceType",c_ulong),
("Handle",c_int),
("NumberOfClients",c_int),
("SerialNumber",c_int),
("MaxAllowedClients",c_int)]
class cNeoVICan(CCanBase):
def __init__(self):
neoVi = windll.icsneo40
self.icsneoFindNeoDevices = neoVi.icsneoFindNeoDevices
if __name__ == "__main__":
canBus = cNeoVICan()
print canBus.icsneoGetDLLVersion()
iNumberOfDevices = (NeoDevice * 10)()
num = c_int()
iResult = canBus.icsneoFindNeoDevices(c_ulong(65535), cast(iNumberOfDevices, POINT(NeoDevice)), byref(num))
Ⅲ python 函數怎麼返回兩個數組參數
你的意思是 函數值返回值直接放到另一個函數當參數吧
實際上可以變通一下,返回的是元組,然後怎麼拿到元組中的一個
最簡單的就是使用[]
如果 return a,b,c ,想拿到b
使用 fun()[1] // 下標從0開始
Ⅳ python內置函數為什麼自變數既可以是數組又可以是數
因為參數給內置函數傳遞值的時候,內置函數拿到這個值首先會對這個值的類型進行判斷,如果是數組會對他進行怎樣的初始化,如果是單個的常數會對他進行怎樣的初始化,這些查看一下內置函數的源代碼就明白了
Ⅳ C++調用時python時,如何傳入數組做為參數
題主,你基本操作沒什麼問題,有幾個小地方要修改一下,修改如下:
你的源碼:
PyObject* list = PyList_New(3);
for (size_t i = 0; i < 3; i++)
PyList_Append(list, Py_BuildValue("i", i));
PyEval_CallObject(pFunc, list);
--------------------------------------------------------------------------------------
修改後,應該是這樣
PyObject*pArgs=NULL;
PyObject*list=PyList_New(0);//3改成0
pArgs=PyTuple_New(1);//定義1個參數
for(size_ti=0;i<3;i++)
PyList_Append(list,Py_BuildValue("i",i));//這樣才能用Append,
PyTuple_SetItem(pArgs,0,list);//將列表賦給參數
PyEval_CallObject(pFunc,list);//傳入參數,調用函數
注意事項:PyList_New(0)初始化0的時候,應該用Append初始化
PyList_New(3)初始化3個時候,應該用SetItem初始化
如果用Append的話,會出現[NULL,NULL,NULL]的情況
我在給一個完整的:
Python :(hello.py)
defTestList(nlist):
print(nlist)
return
一般參數都是已元組形式傳入的
Py_Initialize();
PyRun_SimpleString("importsys");
PyRun_SimpleString("sys.path.append('./')");
PyObject*pMole=NULL;
PyObject*pList=NULL;
PyObject*pFunc=NULL;
PyObject*pArgs=NULL;
pMole=PyImport_ImportMole("hello");
pFunc=PyObject_GetAttrString(pMole,"TestList");
pArgs=PyTuple_New(1);
pList=PyList_New(0);
for(inti=0;i<3;i++)
{
PyList_Append(pList,Py_BuildValue("i",i));
}
PyTuple_SetItem(pArgs,0,pList);
pRet=PyEval_CallObject(pFunc,pArgs);
Py_Finalize();
最後輸出的:[0, 1, 2]
Ⅵ python中怎麼把數組作為函數的輸入
findAt函數可以使用可變參數*args,即findAt(*args)。同樣還是將幾十個坐標放到a列表中,然後直接調用findAt(*a)
Ⅶ Python中的sum為什麼返回的還是數組
Python中的sum函數,無第二參數時,返回的是數值不是數組,數值為參數1中的數組或其它可迭代對象的全加之和。
在下列幾種情況下,sum函數返回數組:(Python 3版本)
使用了第二參數為axis=0,並且參數1是二維對象,則按列相加並返回數組;
使用了第二參數為axis=1,並且參數1是二維對象,則按行相加並返回數組;
導入了Numpy模塊,並使用了Numpy中的sum函數,並且參數1是二維對象,則默認就是axis=0,即按列相加並返回數組;
importnumpyasnp
#python中自帶的sum
sum([[1,2,3],[4,5,5]])#返回數值20
sum([[1,2,3],[4,5,5]],axis=0)#返回數組[578]
sum([[1,2,3],[4,5,5]],axis=1)#返回數組[614]
#Numpy中的sum
a=np.sum([[1,2,3],[4,5,5]])#返回數組[578]
註:NumPy是Python的一種開源的數值計算擴展。
Ⅷ python如何定義數組
Python數組還有一個變態的使用方法,就是調用時可以不按參數順序,對於我們掌握怎樣正確創建Python數組是很有幫助的,而且也可從中學到不少編程技巧,例如委託和模板方法。希望大家一起研究下。在ubuntu中,更加是必須的一種腳本引擎,所以有必要去學習一下,這里的文章只針對有一定編程基礎,最好是比較熟悉php或javascript的用戶,如果沒任何基礎的新手建議找更詳細的教程去學習。Python數組的變數是不需要定義的,這方面和php一樣,它比javascript還是寬松,不過它是用縮進作為段落標識的,作為習慣了C語言風格語法的人,可能一開始會很不習慣使用。但細一想,其實也是很正常,很合理的。雖然Python在面向過程/面向對象方面也是很寬松,但實際上一般的程序都是一個主入口。然後不斷調用其它類庫或函數,所以用縮進的方式並無不妥,那樣一方面要求用戶寫代碼時要規范,另一方面反向省去了多餘的{}。與C語言風格相比,Python主要語法特點而下:變數、字元串在python中,所有變數都是對象,數組其實是一個鏈表,並且可以進行相應的鏈表操作。對於普通數據類型,定義/賦值方法都是一樣的,這里不作介紹,python的字元串方面有些特別,這里介紹一下。python對字元串用
[']["]
括起含義是一樣的,同樣對特殊字元使用
[\]
進行轉義不過它有一個很特別的語法就是:[''']三引號,它用於括起分多行的字元串,實際是這也可以作為它的多行註解,如:#!/usr/bin/python
#python
source
class
python:
def
Hello(self):
print
'Hello'
def
count(n):
in=0
while(in<=n):
inin=in+1
print
in
//buile
by
G++
or
VC++
//C++
Source
#include
<iostream>
int
main()
{
class
python
{
public:
void
Hello(void)
{
cout<<"Hello"<<endl;
}
void
count(int
n)
{
int
in=0;
while(in<=n)
{
inin=in+1;
cout<<in<<endl;
}
}
};
return
0;
}
python數組實際不是數組,而是一個list對象,如果要參考它的用法,可以參考這個對象的方法。需要注意的是,python數組實際是一個鏈表,因此定義後不能像php之類語言一樣,直接在後面追加元素,而是需要用操作鏈表的方法操作。在上述例子中:如果用
arr[2]
=
'ccccc'
可以改變第三個元素的值,但如果用
arr[3]
=
'dddd'
增加一個元素是會指錯的,應該用:arr.append('ddddd')
或
arr.insert(任意位置,
'dddd')
增加元素。對於多維數組,定義方式為:
arr
=
[[]]
*
3
它定義的是:[[],
[],
[]],也可以用
arr
=
[[]
for
i
in
range(3)]
對於數組和字元串等常用操作,後面會有一章專門介紹,這里就不在列舉更多的使用方法。python數組實際不是數組,而是一個list對象,如果要參考它的用法,可以參考這個對象的方法。需要注意的是,python數組實際是一個鏈表,因此定義後不能像php之類語言一樣,直接在後面追加元素,而是需要用操作鏈表的方法操作。在上述例子中:如果用
arr[2]
=
'ccccc'
可以改變第三個元素的值,但如果用
arr[3]
=
'dddd'
增加一個元素是會指錯的,應該用:arr.append('ddddd')
或
arr.insert(任意位置,
'dddd')
增加元素。對於多維數組,定義方式為:
arr
=
[[]]
*
3
它定義的是:[[],
[],
[]],也可以用
arr
=
[[]
for
i
in
range(3)]
對於數組和字元串等常用操作,後面會有一章專門介紹,這里就不在列舉更多的使用方法。
Ⅸ python如何調用函數中的數組
python調用函數中的數組的方法:
在函數裡面使用global定義一個全局變數,然後將數組賦值給這個變數,調用該函數,帶有數組的的這個全局變數就可以直接使用了
示例如下:
執行結果如下:
更多Python知識,請關註:Python自學網!!
Ⅹ python 函數 數組
這里你不能重復引用,你可以用另一個數組 一個d的備份,然後再做你的 替換操作