I持つデータの順序付きタプル:あるしきい値から別のしきい値にすべての値を選択する方法は?
my_data = (1,2,3,2,4,2,3,3,5,7,5,3,6,8,7)
どのように私はタプル項目をサブセットすることができ、すべてのアイテムを含むと3の最初のインスタンスの後の最初の値== 7まで保持されているような?たとえば、結果は次のようになります。
desired_output = (3,2,4,2,3,3,5,7)
I持つデータの順序付きタプル:あるしきい値から別のしきい値にすべての値を選択する方法は?
my_data = (1,2,3,2,4,2,3,3,5,7,5,3,6,8,7)
どのように私はタプル項目をサブセットすることができ、すべてのアイテムを含むと3の最初のインスタンスの後の最初の値== 7まで保持されているような?たとえば、結果は次のようになります。
desired_output = (3,2,4,2,3,3,5,7)
私はあなたがしきい値(値== 7、または任意の値> = 7)、によって何を意味するかわからないが、ここソリューションです:
my_data = (1,2,3,2,4,2,3,3,5,7,5,3,6,8,7)
index1 = my_data.index(3)
index2 = my_data.index(7)
desired_output = my_data[index1:index2+1]
print desired_output
itertools
には、dropwhile
とtakewhile
があります。 dropwhile
を使用して、最初の3
、およびtakewhile
までのすべてを削除してから、最初の7日まですべてを削除します。ちょうど2つの
import itertools
L = [1,2,3,2,4,2,3,3,5,7,5,3,6,8,7]
answer = list(itertools.takewhile(lambda x: x!=7, itertools.dropwhile(lambda x: x!=3, L)))
answer.append(7)
In [49]: answer
Out[49]: [3, 2, 4, 2, 3, 3, 5, 7]
'desired_output'はリストではないタプルである必要があります – MichaelMaggs
@MichaelMaggs:' tuple(...) 'を使ってそのリストをタプルにします – inspectorG4dget
found_three = False
res = []
for d in data:
if d == 3:
found_three = True
if found_three:
res.append(d)
if d == 7;
break
このコードスニペットは問題を解決するかもしれませんがhttp://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – andreas
my_data.index(my_data.index(min_thre):my_data.index(max_thre)+1)マージその後
を私はあなたの答えに基づいて質問を明らかにしました。 – Borealis