将变量分配给列表元素,而不知道它的长度

时间:2012-10-18 09:23:03

标签: python list variable-assignment

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

该功能正在询问: 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 ......(不是我的选择)

2 个答案:

答案 0 :(得分:1)

函数声明中有4种argument: -

  • 位置参数
  • 默认参数(或关键字参数 - 格式为: - a = 5
  • 非关键字参数
  • 关键字参数(或字典类型关键字参数)

典型的函数声明如下: -

func(positional_args, keyword_args,
                     *tuple_grp_nonkw_args, **dict_grp_kw_args)

你需要non-keyword参数,它需要额外的参数并将它们存储为tuple

w.record(*yourvalues)

类似keyword参数,将dictionary作为输入。它们用**kwarg表示。

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

对于E.G: -

// 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}

答案 1 :(得分:0)

def foo(hello, *args):
 print hello

 for each in args:
     print each

if __name__ == '__main__':
 foo("LOVE", ["lol", "lololol"])