-5

リストを各変数に分割する関数を作成する方法

例:各リストに「n」個の要素がある場合

mylist = [var,var1,var2,var3]
anotherlist = [var,var1,var2,var4,var5]

->結果

これらの変数リストを分割する関数を作成します

split(mylist) --> 
x = var
x1 = var1
x2 = var2
: 
xn = varn
4

4 に答える 4

1

私はあなたの質問を完全には理解していませんが、あなたはそのようなことを意味しますか?

def print_var(variable_list):
    for i, element in enumerate(variable_list):
        print 'x' + str(i) + ' = ' + element

mylist = ['var','var1','var2','var3']
anotherlist = ['var','var1','var2','var4','var5']
print_var(mylist)
print_var(anotherlist)
于 2012-09-27T21:24:21.903 に答える
1

「実行可能」のように、それは可能ですが、それが何かに役立つ可能性は低いです。リストの長さが最初から不明な場合、コードで可能な値の範囲がわからない場合は、「x」という名前の変数をどの程度使用するとよいでしょうか。

言語としてのPythonは、既知の名前の変数を持つように設計されています。出くわした動的データは、辞書などの動的データ構造に保持する必要があります。この場合、唯一の識別子はインデックス、リスト自体。

言い換えれば、あなたはより良いです:

mylist = [var,var1,var2,var3]
mylist[0]
mylist[1]
...

あなたが求めるものよりも-mylistの長さをチェックしたり、forステートメントでその要素をループしたりできるからです。

とはいえ、Pythonにはassignemtnの解凍機能があることを覚えておくことが重要です。したがって、リストに既知の長さが含まれている場合は、次のようにするだけです。

mylist = [var1, var2, var3, var4]
x1, x2, x3, x4 = mylist
于 2012-09-27T21:25:08.763 に答える
1

あなたの質問はかなり曖昧なので。別のリストの変数をmylistの名前に割り当てたいということから、私が理解できることを適用しています。その場合、このような辞書を使用することをお勧めします。

mydict = {}
for i in xrange(len(mylist)):
    mydict[mylist[i]] = anotherlist[i]

mydict次に、からの値をキーとして自由に使用できmylistます。

于 2012-09-27T21:26:01.013 に答える
1

まず、問題は変数を動的に割り当てることだと私には思えます。第二に、それは悪い考えです。代わりに辞書を使用する必要があります。それでも、ここにあなたがすべきでない例がありますが、それはあなたの質問に答えているようです。

In [196]: def assign_variables(mylist):
     ...:     for idx,item in enumerate(mylist):
     ...:         var='x'+str(idx)
     ...:         globals()[var]=item
     ...:         

In [197]: mylist=['var','var1','var2','var3']

In [198]: assign_variables(mylist)

In [199]: x1
Out[199]: 'var1'

In [200]: x2
Out[200]: 'var2'

dictを使用すると、次のようなsmthを試すことができます。

>>> def var_dict(mylist):
...     d={}
...     for idx,item in enumerate(mylist):
...         var='x'+str(idx)
...         d[var]=item
...     return d
... 
>>> mylist=['var','var1','var2','var3']
>>> mydict=var_dict(mylist)
>>> mydict
{'x0': 'var', 'x1': 'var1', 'x2': 'var2', 'x3': 'var3'}
>>> mydict['x1']
'var1'
>>> 
于 2012-09-27T21:58:48.827 に答える