Python 在不知道的情况下为列表元素分配变量';s长度

Python 在不知道的情况下为列表元素分配变量';s长度,python,list,variable-assignment,Python,List,Variable Assignment,不确定如何正确形成,但问题与写入新行的shapefile(python库)函数有关,该函数需要写入变量。。 根据我的数据,我正在创建一个列表,我认为我可以将其转换为tuple,并将解决我的问题,但没有。。我可没那么容易 函数要求: w.record(a,b,c,d…)或w.record('a',256,25.2444,'d'…) 我的数据在一个列表中,但列表长度不知道我的默认值,这取决于输入数据的形式,正确的长度很重要 我也可以写w.record(list[0],list[1]…list[len

不确定如何正确形成,但问题与写入新行的shapefile(python库)函数有关,该函数需要写入变量。。 根据我的数据,我正在创建一个列表,我认为我可以将其转换为tuple,并将解决我的问题,但没有。。我可没那么容易

函数要求:
w.record(a,b,c,d…)
w.record('a',256,25.2444,'d'…)
我的数据在一个列表中,但列表长度不知道我的默认值,这取决于输入数据的形式,正确的长度很重要

我也可以写
w.record(list[0],list[1]…list[len(list)-1])
,但是我必须自动创建它,不知道如何才能做到这一点


顺便说一句,我使用了一个旧的python:2.5。。。(不是我的选择)

函数声明中有4种
参数
:-

  • 位置参数
  • 默认参数(或关键字参数-格式为:-
    a=5
  • 非关键字参数
  • 关键字参数(或,字典类型关键字参数)
典型的函数声明如下:-

func(positional_args, keyword_args,
                     *tuple_grp_nonkw_args, **dict_grp_kw_args)
// nkwarg takes a list
// kwarg takes a dictionary
def foo(arg, defaultarg = 5, *nkwarg, **kwarg):
    print arg
    print defaultarg
    print nkwarg
    print kwarg


foo("hello", ["how", "are", "you"], a = 3, b = 4)
您需要
非关键字
参数,它接受额外的参数并将它们存储为
元组

w.record(*yourvalues)
类似地,
关键字
参数将
字典
作为输入。它们用
**kwarg
表示

  • 非关键字参数之后的所有关键字参数进入
    **kwarg
  • 非关键字参数之前的所有关键字参数都是默认参数
例如:-

func(positional_args, keyword_args,
                     *tuple_grp_nonkw_args, **dict_grp_kw_args)
// nkwarg takes a list
// kwarg takes a dictionary
def foo(arg, defaultarg = 5, *nkwarg, **kwarg):
    print arg
    print defaultarg
    print nkwarg
    print kwarg


foo("hello", ["how", "are", "you"], a = 3, b = 4)
输出:-

hello
5
(['how', 'are', 'you'],)
{'a': 3, 'b': 4}

我不确定我是否正确理解了你的问题;但是我Python支持函数,这就是你需要的吗?但是如果我有一个列表:l=['Mok','Union'u80vh'u50vh',13867,32','11:20:13.077','523.343','29.1','29.09.2012','13:17:02.077','11:19:58.077',1,35','90','523.348917598],它将如何运行?@najuste它将存储在
*nkwarg
中<代码>*标记用于使参数采用任意数量的值。基本上它需要一个可变长度的列表。@n只是你可以看看这个链接:-谢谢,我不知道*的事情(新手)。但是如果我通过了一个列表,作为这样的结果,我会再次得到一个列表。。好的,我可以使用w.record(foo(*list)),但这是一种有两个括号的情况,因此不起作用。。我得到了它!!对不起,我刚才测试错了。。uf。。