私は数字のリストをそれぞれの行につけます(例えば、0-100)。リストされていないか見つからない番号を見つけるにはどうすればよいですか?リストにないか見つからない番号を見つけるにはどうすればよいですか?
5
A
答えて
12
がセットにそれらすべてを追加します。次に、1-100で満たされた集合から減算する。 0-9の例を次に示します。
>>> set(range(10)) - set([1, 4, 5, 6, 8, 2])
set([0, 9, 3, 7])
>>>
私は[1, 4, 5, 6, 8, 2]
を持っていました。範囲0-9の数字が見つからないことを確認するために、私は0-9のすべてを含むセットを作成し、そのセットから[1, 4, 5, 6, 8, 2]
を減算しました。 [0, 9, 3, 7]
が見つかりませんでした。
セットは、このためかなり効率的です。追加の利点として、重複は正常に処理されます。
1
Lは、次いで、
set(L).difference(xrange(101))
番号のリストである場合ははxrangeここ
In [1]: L=[1, 4, 5, 6, 8, 2]
In [2]: timeit set(range(101)) - set(L)
10000 loops, best of 3: 21.7 µs per loop
In [3]: timeit set(L).symmetric_difference(range(101))
100000 loops, best of 3: 14.2 µs per loop
In [4]: timeit set(L).difference(range(101))
100000 loops, best of 3: 9.73 µs per loop
+0
あなたは 'difference'も使うことができます。' symmetric_difference'は本質的にXORです –
+0
@Eli、良い点、より速い静止 –
0
連想を使用awk
溶液をだからセットを作成保存する(キー値)配列:
printf '%s\n' 1 4 5 6 8 2 |
awk -F " " -v first=0 -v last=9 '
BEGIN {
for(i=first; i<=last; i++)
array[i] = 0
}
{
for(i=1;i<=NF;i++)
array[$i] += 1
}
END {
for (num in array)
if (array[num] == 0) print num
}
'
- まず、we creデフォルト値0の単一のキーとして使用されている与えられた範囲のすべての数字を持つ配列を返しました。
- すべての入力番号は、値が1だけ増えるようにawkによって配列のキーとして処理されます。
- インクリメントされていない、つまり0の値を持つキーが印刷されます(数値の入力範囲に欠落しているため)。
0
のbash:あなたは数字を
# first set up an array containing the whole range
declare -a nums
for i in {0..100}; do
nums[$i]=1
done
# then read the file and remove the numbers from it
while read number; do
unset nums[$number]
done < file.with.numbers
# the remaining array keys are the numbers not found in the file
for number in "${!nums[@]}"; do
echo $number
done
関連する問題
- 1. シーケンス内に見つからない番号を見つける
- 2. 2つのリストから一致するアイテムを見つけるにはどうすればよいですか?
- 3. リストから最も低い値を見つけるにはどうすればよいですか?
- 4. BFSで実際に見つかったパスを見つけるにはどうすればよいですか?
- 5. 2つのソートされた配列で見つからない番号を見つける
- 6. GDBが行番号を見つけられない、objdumpが
- 7. emacsに見つからないhtmlタグを見つける
- 8. 最後にを見つけるにはどうすればいいですか?
- 9. どのようにsyscall(いくつかの番号)ルーチンを見つけることができますか?
- 10. Perlが壊れているようです: "=:見つからない"と "パッケージ:見つからない"
- 11. PHP - 範囲内に見つからないデータを見つけよう
- 12. レーキタスクのソースファイルを見つけるにはどうすればよいですか?
- 13. k-bestソリューションを見つけるにはどうすればよいですか?
- 14. ビジュアルスタジオ2012でWindowsデザイナーを見ているコントロールを見つけるにはどうすればよいですか?
- 15. 私のパッケージを見つけるにはどうすればいいですか?
- 16. 有効な番号からの距離を見つける
- 17. 記号が見つからないInetAddress.getByAddress()
- 18. ジョイントしたピボットテーブルで見つからない列を見つけよう
- 19. グラフの完全でない二者間マッチングを見つけるにはどうすればよいですか?
- 20. 「見つからない」行を見つける
- 21. アップデート後にアプリを見つけられないのですか?
- 22. TextMate:キーボードショートカットに関連付けられたコマンドを見つけるにはどうすればよいですか?
- 23. もし(isset($ video_url)&httpsだけが見つからない場合はどうすればいいですか?)
- 24. Mathematicaでは、ルールとリストを含むパターンを見つけるにはどうすればよいですか?
- 25. フォルダ内に見つからないファイル番号を検索するコード
- 26. ソートされたリスト内の指定された番号よりも小さい番号を見つけよう
- 27. タスクの一番上のアクティビティを見つけるにはどうすればよいですか?
- 28. パッケージ内からインポートできるモジュールを見つけるにはどうすればよいですか?
- 29. あなたのリポジトリからgit pull/fetchの番号を見つけよう
- 30. AS3:ディープネストされたスプライトの親をステージから見つけるにはどうすればいいですか?
繰り返してきたのですか?彼らは分類されていますか?この宿題ですか? :-) – juanchopanza
PythonまたはBash? – Chetan