が、私は、ユーザーからの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')]]
にあなたは、リスト内のタプルを追加している
:
よりもむしろCONCATENATE文字は、単に直接タプルを作成し、タプルに戻って文字列を変換しますタプルを含むリスト?なぜ[( '1'、 'E')、( '2'、 'K')] '? –
'x> MF'テストは' MF'が文字列の場合は決して通過できません。なぜなら、Python 2は常に他の型よりも前に数字をソートするからです( '2>" 0.5 "'は常に* false *です)。引用符を使わずに '0.5' *を渡さなかったと確信していますか? –
はい私は合格しませんでした。ここでは例を挙げて説明しました。ありがとう – user3805057