-1

参考までに、私はこのようなものは初めてです

だから元の質問は

7) 整数のリスト v を取り、次のものだけを含む新しいリストを返す関数 filter_range(v, lo, hi) を書きます。

[lo, hi) の範囲内にある v の要素。

したがって、ユーザーが整数と範囲条件を入力した場合、そのリスト内のすべての項目をその条件に対して個別にチェックする方法や、入力ごとにテストを行う必要があるという概念に問題があります。これはif文になりますか?もしそうなら、それはどのように機能しますか?「if a <= str(blah blah) < b then print か何か?しかし、それはどのように通過する個々の数値を出力するのでしょうか?正直なところ、一般的には失われています.

4

3 に答える 3

2

このようなリスト内包表記を使用して、これを1行で行うことができます

def filter_range(v, lo, hi):
    return [item for item in v if lo <= item < hi]

print filter_range(range(10), 2, 8)

出力

[2, 3, 4, 5, 6, 7]
于 2013-11-15T03:40:17.500 に答える
0

Python3 では、かなり効率的に使用できます (実際にリストを作成してスキャンするわけではありません)。

def filter_range(v, lo, hi):
    return [i for i in v if i in range(lo, hi)]

Python2xrangeでは、代わりに使用する必要がありますrange

于 2013-11-15T03:53:15.300 に答える
0
def filter_range(v, lo, hi):
  return list(filter(lambda x: lo<=x<hi, v))

また

def filter_range(v, lo, hi):
  acceptable = set(range(lo, hi))
  return list(filter(acceptable.__contains__, v))

また

def filter_range(v, lo, hi):
  answer = []
  for i in v:
    if lo <= i < hi:
      answer.append(i)
  return answer

また

def filter_range(v, lo, hi):
  answer = []
  for i in v:
    if i >= lo:
      if i < hi:
        answer.append(i)
  return answer
于 2013-11-15T03:42:15.463 に答える