0

正しく形成する方法はわかりませんが、問題は、変数を書き込む必要がある新しい行を書き込むシェープファイル(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 ...(私の選択ではありません)

4

2 に答える 2

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
  • また、非キーワード引数の前のすべてのキーワード引数はデフォルトの引数です

EGの場合:-

// 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}
于 2012-10-18T09:25:31.893 に答える
0
def foo(hello, *args):
 print hello

 for each in args:
     print each

if __name__ == '__main__':
 foo("LOVE", ["lol", "lololol"])
于 2012-10-18T09:25:26.877 に答える