2016-10-13 7 views
-1

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) 

答えて

4

私はあなたがしきい値(値== 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 
+0

を私はあなたの答えに基づいて質問を明らかにしました。 – Borealis

0

itertoolsには、dropwhiletakewhileがあります。 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] 
+0

'desired_output'はリストではないタプルである必要があります – MichaelMaggs

+0

@MichaelMaggs:' tuple(...) 'を使ってそのリストをタプルにします – inspectorG4dget

0
found_three = False 
res = [] 
for d in data: 
    if d == 3: 
     found_three = True 
    if found_three: 
     res.append(d) 
    if d == 7; 
     break 
+0

このコードスニペットは問題を解決するかもしれませんがhttp://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – andreas

2

my_data.index(my_data.index(min_thre):my_data.index(max_thre)+1)マージその後

関連する問題