4

Pythonから来ているので、delphi5のこのPythonコード(セット)に相当するものを探しています:

>>> x = set("Hello")
>>> x
set(['H', 'e', 'l', 'o'])

>>> y = set("Hallo")
>>> y
set(['a', 'H', 'l', 'o'])

>>> x.intersection(y)
set(['H', 'l', 'o'])
4

1 に答える 1

9
var
  a, b, c: set of byte;
begin
  a := [1, 2, 3, 4];
  b := [3, 4, 5, 6];
  c := a*b;          // c is the intersection of a and b, i.e., c = [3, 4]

ただし、注意してください。

var
  a, b, c: set of integer;

コンパイルすらしません。代わりに、「セットには最大256個の要素が含まれる可能性があります」というエラーが発生します。Delphiセットの詳細については、ドキュメントを参照してください。

アップデート

申し訳ありませんが、「明らか」(Delphiプログラマーの観点から)について言及するのを忘れました:

var
  a, b, c: set of char;
begin
  a := ['A', 'B', 'C', 'D'];
  b := ['C', 'D', 'E', 'F'];
  c := a*b;          // c is the intersection of a and b, i.e., c = ['C', 'D']

ただし、文字はすべてバイト文字になります。つまり、Unicodeを忘れてください(Delphi 5はUnicodeをサポートしていないため、この場合、これは実際には制限ではありません)。

于 2012-10-22T18:54:12.173 に答える