0

特に角かっこを避けるために、コードを簡素化したい。だから私の質問は:

def someFunction():
    someString = "Hi!"
    someNumber = 22
    somePointer = ""
    someList = []

    names_list = ['someString','someNumber','somePointer','someList']
    val_list = [someString, someNumber, somePointer, someList]

    someDict = {}

    for i in range( len( names_list ) ) :
        someDict[names_list[i]] = val_list[i]  

    someOtherFunction( someDict )

def someOtherFunction( dict ):
    for key, value in dict.iteritems() :
        print key, value

    print someString, someNumber

someFunction()

このように作ることは可能ですか?

4

3 に答える 3

1

変数のリストを知っていて、それらがいくつかの関数で使用される場合、これが役立つ理由がわからない

# generate names and values again at other place
def foo():
    for d in someDict :
        d_name = d

次に、関数呼び出し中にそれらを解凍できます

def foo(someString=None,
        someNumber=None,
        somePointer=None,
        someList=None):
    pass

foo(**someDict)
于 2013-05-17T06:22:15.967 に答える
0

私が見つけた最も簡単な方法は、コンストラクターに組み込まれた dict() を使用することです。

someString = "Hi!"
someNumber = 22
somePointer = ""
someList = []

someDict = dict( 
    string = someString, number = someNumber,
    pointer = somePointer, list = someList )

print someDict

Output : { "string" : "Hi", "number" : 22, "pointer" : "", "list" : [] }
于 2013-06-01T13:14:55.727 に答える