java中的键值对转成python,求一段java代码转换成python代码

[Python] 纯文本查看 复制代码#!/usr/bin/env python3

# -*- coding: utf-8 -*-

class Closures(object):

def __init__(self):

self.map = {}

self.list = []

def introduction(self):

print("使用方法说明:")

print("输入集合时就可以直接abcdefg...的输入")

print("闭包依赖的输入格式为a->b然后回车,再输入c->d,以此类推")

print("集合中的空集以@代替")

def inputList(self):

print("请输入你的属性列,输入end结束")

while (True):

str = input().lower()

if len(str) != 0 and str != 'end':

for s in str:

s.upper()

if (self.list.count(s) == 0):

self.list.append(s)

if str == 'end':

break;

def outputList(self):

result = ''

print("你输入的集合为")

for l in self.list:

print(l)

result += l

print('\n')

return result

def printout(self):

print("保存的依赖为:")

for (key, value) in self.map.items():

print('{0} {1}'.format(key, value))

def add(self, name, result):

str = result

for s in name:

if result.find(s) == -1:

str += s;

return s

def calculate(self, result):

flag = True

for (str, name) in self.map.items():

for s in str:

if result.find(s) == -1:

flag = False

break

if flag:

comp = result

result = self.add(name, result)

if result != comp:

result = self.calculate(self.map)

return result

def calculateSet(self, result, strs):

length = len(result)

max = int(pow(2.0, length))

for i in range(max):

strs[i] = self.switchArray(i, result)

def switchArray(self, num, result):

binary = bin(num).replace('0b', '')

flag = True

count = len(binary)

out = ""

length = len(result)

temp = ['0' for x in range(length)]

for i, j in zip(range(length - 1, -1, -1), range(count - 1, -1, -1)):

if binary[j] == '1':

temp[i] = '1'

flag = False

for t, i in zip(temp, range(length)):

if t == '1':

out += result[i];

if flag:

out = '@'

return out

def doMain(self):

result = ''

self.introduction()

self.inputList()

self.outputList()

print("请输入依赖,输入end结束输入!")

while (True):

str = input().lower()

if str == 'end':

break

result = self.calculate(result)

print('所需要的闭包为{0}'.format(result))

result = self.outputList()

length = pow(2.0, len(result))

str = ['0' for x in range(int(length))]

self.calculateSet(result, str)

for s in str:

if s.find('@') != -1:

continue

result = self.calculate(s)

subLength = pow(2.0, len(result))

subStr = ['0' for x in range(int(subLength))]

self.calculateSet(result, subStr)

for ss in subStr:

print('{}->{}'.format(s, ss))

if __name__ == "__main__":

clo = Closures()

clo.doMain()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值