2016-06-15 5 views
0

が、私は、ユーザーからの4つの入力値を持っている:連続したタプルをコンマでネストされたリストに追加するにはどうすればよいですか?次のように

numbers[1, 2] 
numbersLetters={'E': 1,'K': 2} 
RandomFrequency="0.5" 

をここで、私の目的は、番号のリストをランダム化し、> 0.5を持つランダムなノーを取得することです。

次に、numbersLetters辞書から選択したランダム番号の文字を取得します。

最後に、一致するランダム番号を、別のリストのリスト内の単一のタプルのそれぞれの文字とともに追加します。

このような期待ouputを何か:

import random 

def randomMutation(numbers,numbersLetters,MF): 
    mut=[] 
    for res,pos in numbersLetters.iteritems(): 
     r = random.choice([x for x in numbers if x > MF]) 
     if pos==r: 
      fp=int(pos)-1 
      mut.append((tuple(str(pos)+res)))#changes 
    if not mut: 
     print "The possibility of random positions is not available for given thresold value (> "+ str(MF)+")" 
    else: 
     mutation_combinations = chain.from_iterable([list(combinations([mut], 1))]) 

if __name__ == '__main__': 
    randomMutation([1, 2],{'E': 1,'K': 2},"0.5") 
:私は答えを得た

[[('1', 'E')], [('2', 'K')]] 

マイスクリプト

import random 

def randomMutation(numbers,numbersLetters,MF): 
    mut=[] 
    for res,pos in numbersLetters.iteritems(): 
     r = random.choice([x for x in numbers if x > MF]) 
     if pos==r: 
      fp=int(pos)-1 
      mut.append([tuple(str(pos)+res)]) 
    print mut 

if __name__ == '__main__': 
    randomMutation([1, 2],{'E': 1,'K': 2},"0.5") 

:私は何を得る

[[('1', 'E'), ('2', 'K')]] 

にあなたは、リスト内のタプルを追加している

+0

mut.append(tuple(str(pos)+res)) 

よりもむしろCONCATENATE文字は、単に直接タプルを作成し、タプルに戻って文字列を変換しますタプルを含むリスト?なぜ[( '1'、 'E')、( '2'、 'K')] '? –

+0

'x> MF'テストは' MF'が文字列の場合は決して通過できません。なぜなら、Python 2は常に他の型よりも前に数字をソートするからです( '2>" 0.5 "'は常に* false *です)。引用符を使わずに '0.5' *を渡さなかったと確信していますか? –

+0

はい私は合格しませんでした。ここでは例を挙げて説明しました。ありがとう – user3805057

答えて

0

mut.append([tuple(str(pos)+res)]) 

[...]ブラケットを取り外します。これらは、あなたのネストされたリストオブジェクトを作成し、あなたがそれを必要としない:なぜリスト内の

mut.append((str(pos), res)) 
+0

私はこの行でタプルのリストを作成しました:mut.append(tuple(str(pos)+ res)。次にmut = [( 'G'、 '1'、 'E'最後に、私はmutation_combinations = chain.from_iterable([list(){(mut、1))]))によってこのリストを別のリストに入れます。 – user3805057

+0

その作業別の行を追加する - > mutation_combinations = chain.from_iterable([list(combinations([mut]、1))]]正しいスクリプトを更新しました – user3805057

関連する問題