0

次のリスト (スクリプト内の文字列変数) があるとします。

dog = lab
cat = brown
fish = wet
dog = terrier
cat = angry
fish = cooked
dog = blah
cat = soon
fish = wegetthepattern

このリストを解析し、出現に基づいてこれらを変数として設定する方法が必要です。したがって、最終的には次のような変数を設定します。

dog1='lab'
dog2='terrier'
dog3='blah'
cat1='brown'
cat2='angry'

等々。私のリストには犬、または 200 と書かれた時間が 1 回あるかもしれませんが、リスト (現在呼び出している文字列変数) を解析し、後でスクリプトで呼び出すことができるこれらの変数を設定する方法が必要なだけです。

4

2 に答える 2

3

これに対する通常の答えは、「やろうとしないでください」です。

達成しようとすることはできますが、後悔することになります。代わりに単語を dict に保存します。

In [1]: s = '''dog = lab
   ...: cat = brown
   ...: fish = wet
   ...: dog = terrier
   ...: cat = angry
   ...: fish = cooked
   ...: dog = blah
   ...: cat = soon
   ...: fish = wegetthepattern'''

In [2]: from collections import defaultdict

In [3]: words = defaultdict(list)

In [4]: for pair in s.split('\n'):
   ...:    left, right = pair.split(' = ')
   ...:    words[left].append(right)
   ...:    

In [5]: words['dog']
Out[5]: ['lab', 'terrier', 'blah']
于 2013-04-16T19:05:57.567 に答える
0
s = """dog = lab
cat = brown
fish = wet
dog = terrier
cat = angry
fish = cooked
dog = blah
cat = soon
fish = wegetthepattern"""

for i in s.split('\n'):
    exec(i.split()[0] + '= "' + i.split()[-1] + '"')

print(cat) # prints 'soon'

ただし、これは避けるべきです。

于 2013-04-16T19:05:00.970 に答える