【Python之枚举类型】教程文章相关的互联网学习教程文章

python中的选择枚举,选择排序,冒泡排序【代码】【图】

‘’’ str() int() len() list() sorted() print() input() enumerate()函数用于将一个可遍历的对象(如列表,元祖,或字符串)组合为一个索引序列 ‘’’ l1=['a','abc','jk','opop'] for index,value in enumerate(l1):print(index,value) for index,value in enumerate('happy'):print(index,value)选择排序 numbers=[5,7,8,9,2,0,6,4,9] # numbers=sorted(numbers) # print(numbers) # numbers.sort() #自定义排序方法 for i ...

如何在python中枚举嵌套类?【代码】

如何实现枚举嵌套类的函数?class A(object):class B(object):passclass C(object):passdef enumerate_nested_classes(_class):return () # need proper implementation insteadassert set(enumerate_nested_classes(A)) == {A.B, A.C}解决方法:您可以使用下一个代码:import typesclass A(object):class B(object):passclass C(object):passdef enumerate_nested_classes(_class):return [getattr(_class, n) for n in dir(_clas...

python – 如何加快numpy数组的枚举/如何有效地枚举numpy数组?【代码】

我需要生成很多随机数.我尝试过使用random.random,但这个功能很慢.因此我切换到numpy.random.random,这更快!到现在为止还挺好.生成的随机数实际上用于计算某些事物(基于数字).因此,我枚举每个数字并替换值.这似乎杀死了我之前获得的所有加速.以下是使用timeit()生成的统计信息:test_random - no enumerate 0.133111953735 test_np_random - no enumerate 0.0177130699158test_random - enumerate 0.269361019135 test_np_random ...

python – 多个枚举值的开关/大小写【代码】

我有两个值,每个值来自不同的枚举.我想检查这两者的允许组合,如果没有找到则执行默认操作.我可以以某种方式对这两个值进行切换/案例吗?我想避免多个if / else语句或遵循位掩码模式的枚举,只是因为我认为它们在代码中不像switch / case那么漂亮. 对于知道python的人来说,我基本上想在C中使用这个python代码的解决方案:val1 = "a" val2 = 2 actions = {("a", 1): func1,("b" ,1): func2,("a" ,2): func3,("b" ,2): func4 } action ...

.net – 是否有类似于linq的python枚举的东西【代码】

在python中,我可以在迭代时轻松获得索引,例如>>> letters = ['a', 'b', 'c'] >>> [(char, i) for i, char in enumerate(letters)] [('a', 0), ('b', 1), ('c', 2)]我怎么能用linq做类似的事情?解决方法:当然.有一个overload of Enumerable.Select采用Func< TSource,int,TResult>将元素与其索引一起投影: 例如:char[] letters = new[] { 'a', 'b', 'c' }; var enumerate = letters.Select((c, i) => new { Char = c, Index = i }...

带枚举的基本python file-io变量【代码】

python的新手,并试图学习文件i / o的绳索. 我正在使用以下格式从大型(200万行)文件中提取行:56fr4 4543d 4343d 5irh3这是我用来返回代码的函数:def getCode(i):with open("test.txt") as f:for index, line in enumerate(f):if index == i:code = # what does it equal?breakreturn code一旦索引到达正确的位置(i),我使用什么语法来设置代码变量?解决方法:code = line.strip() 将删除尾随的新行时,将代码分配给等于i的行号. 您还...

在Python中结合枚举itertools.izip【代码】

我想迭代枚举Python中的两个列表.以下代码看起来很丑陋.有没有更好的解决方案?for id, elements in enumerate(itertools.izip(as, bs)):a = elements[0]b = elements[1]# do something with id, a and b谢谢.解决方法:您可以在for循环期间指定a和b:for id, (a, b) in enumerate(itertools.izip(as, bs)):# do something with id, a and b

Python3之使用枚举类

当我们需要定义常量时,一个方法是用大写变量通过整数来定义,例如月份JAN = 1 FEB = 2 MAR = 3 APR=4 May=5 Jun=6 Jul=7 Aug=8 Sep=9 Oct=10 NOV = 11 DEC = 12好处是简单,缺点是类型int,并且仍然是变量。更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python提供了Enum类来实现这个功能:from enum import Enum Month=Enum(Month, (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, O...

Python混合枚举作为字典键:如何转换类型?【代码】

这是代码:from enum import Enumclass EFoo(str, Enum):A = 'e1'B = 'e2'print(EFoo.A)d = {EFoo.A : 'eA',EFoo.B : 'eB' }first_key = list(d.keys())[0] first_key_type = type(first_key)print("Keys: " + str(d.keys())) print("Type of first key: " + str(first_key_type)) print("d[EFoo.A] = '" + d[EFoo.A] + "'") print("d['e1'] = '" + d['e1'] + "'")这是输出(Python 3.5)EFoo.A Keys: dict_keys([<EFoo.A: 'e1'>, ...

用于ORM目的的python枚举类【代码】

编辑问题 我正在尝试创建一个类工厂,它可以生成具有以下属性的枚举类: >从列表中初始化类允许值(即,它)自动生成!).> Class创建自己的一个实例对于每个允许的值.>类不允许创建任何其他实例一旦上述步骤已完成(任何尝试这样做会导致异常).>类实例提供了一种方法这个,给定一个值,返回一个参考相应的实例.>类实例只有两个属性:id和value.该属性id自动递增每个新实例;属性value是实例的值代表.>类是可迭代的.我更喜欢使用the accepte...

python – 在Z3Py中检索枚举类型的值【代码】

如何检索枚举变量v的值?例如,vTyp, (val1,val2,val3) = EnumSort('vTyp',['val1','val2','val3']) v = Const('my variable',vTyp)现在,只给出上面的变量v,我将如何检索v的值列表[val1,val2,val3](其中val1,val3,val3是上面的表达式)? 我试过[v.sort().constructor(0),…(1),…(2)]但是构造函数方法没有返回表达式.解决方法:表达式v.sort().constructor(0)返回Z3函数声明.在Z3中,常量是具有0个参数的函数.要在常量表达式中转换声明...

python – 是否有一致的方法来枚举两个日期之间的天/周/月?【代码】

我有两个日期时间对象;开始日期和结束日期.我需要列举两者之间的日,周和月,包括在内. 理想情况下,结果将采用日期时间形式,但任何兼容的形式都可以.周和月由对应于星期/月的第一天的日期表示,其中星期一是一周的第一天,如ISO-8601中所示.这意味着结果可能包含早于开始日期的日期. 例如,鉴于2010-11-28至2010-12-01,结果将如下: 日:2010-11-28,2010-11-29,2010-11-30,2010-12-01 周:2010-11-22,2010-11-29 月:2010-11-01,2010-12...

在python中枚举【代码】

说, 术语= ‘ASDF’; InvertedIndex = {}; InvertedIndex [term] = [1,2,2,2,4,5,6,6,6,6,7]. 现在我们有这个功能,其中没有.任何项目的出现.这是我遇到问题的功能.def TF(term, doc):idx = InvertedIndex[term].index(doc)return next(i for i, item in enumerate(InvertedIndex[term][idx:])if item != doc)TF(术语1)给1,TF(术语2)给1,TF给1(术语4).好到目前为止. 但它给TF的StopIteration错误(术语,7).如果我有InvertedIndex [t...

python – 使用枚举的好处?【代码】

我是Python的初学者.我想知道列举一种更有效的方法吗?或者在这里没那么重要,而且只有在做更复杂的事情时才会发挥作用? 我的代码没有枚举:for x in thing:if thing.index(x) % 2 == 0:x += 7print (x)else:print (x)和我的代码使用枚举:for index,x in enumerate(thing):if index % 2 == 0:x += 7print (x)else:print (x)解决方法:list.index的复杂度为O(n),这意味着你将遍历列表两次以上(也考虑到for循环本身),它返回给定项的第...

Python,双重自动枚举defaultdict【代码】

为了优化一些代码,我使用以下内容:a = defaultdict(lambda: len(a)) a[0] = 0 a[1] = 1 a[7] = 2 ...现在我的问题是我需要一个嵌套的defaultdict,即b = defaultdict(lambda: defaultdict(lambda: len(b[?])) b[0][0] = 0 b[0][1] = 1 b[1][0] = 0 b[1][1] = 1 ...提前致谢…解决方法: def enumdict():a = defaultdict(lambda : len(a))return ab = defaultdict(enumdict)

枚举类型 - 相关标签