Хотя путь Алена Т. в порядке, есть лучший способ, используя Counter
:
from collections import Counter
C = ['A','B','B']
D = ['B']
result = list((Counter(C) - Counter(D)).elements())
Это для приложения направляющих или Ruby один?
Действительно с любым можно быть в состоянии засунуть свойства в yaml файл и затем YAML::Load(File.open("file"))
это.
ПРИМЕЧАНИЕ от Mike Stone: на самом деле было бы лучше сделать:
File.open("file") { |yf| YAML::load(yf) }
или
YAML.load_file("file")
, поскольку рубиновые документы предлагают, иначе файл не будет закрыт до сборки "мусора", но хорошего предложения невнимательный:-)
Другая опция состоит в том, чтобы просто использовать другой файл Ruby в качестве Вашего конфигурационного файла.
Пример, создайте файл, названный 'опциями'
{
:blah => 'blee',
:foo => 'bar',
:items => ['item1', 'item2'],
:stuff => true
}
, И затем в Вашем коде Ruby делают что-то как:
ops = eval(File.open('options') {|f| f.read })
puts ops[:foo]
YAML сделает это отлично, как описано выше. Для примера в одном из моих сценариев Ruby у меня есть файл YAML как:
migration:
customer: Example Customer
test: false
sources:
- name: Use the Source
engine: Foo
- name: Sourcey
engine: Bar
, который я тогда использую в Ruby как:
config = YAML.load_file(File.join(File.dirname(__FILE__), ARGV[0]))
puts config['migration']['customer']
config['sources'].each do |source|
puts source['name']
end
Devender Gollapally записал класс , чтобы сделать точно что:
..., хотя я рекомендовал бы лучше использовать файл YAML.
Вместо .properties стиля файла конфигурации Вы могли бы рассмотреть использование YAML. YAML, используемая в Ruby on Rails для конфигурации базы данных, и, получила в популярности на других языках (Python, Java, Perl и другие).
обзор модуля YAML Ruby здесь: http://www.ruby-doc.org/core/classes/YAML.html
И домашняя страница YAML здесь: http://yaml.org