我觉得我花了很多时间在Python中编写代码,但没有足够的时间创建Pythonic代码.最近我遇到了一个有趣的小问题,我认为可能有一个简单,惯用的解决方案.解释原文,我需要收集列表中的每个连续对.例如,给定列表[1,2,3,4,5,6],我想计算[(1,2),(3,4),(5,6)].
我想出了一个看起来像翻译Java的快速解决方案.重温这个问题,我能做的最好的就是
l = [1,2,3,4,5,6]
[(l[2*x],l[2*x+1]) for x in range(len(l)/2)]
Run Code Online (Sandbox Code Playgroud)
在长度不均匀的情况下,其具有抛弃最后一个数字的副作用.
是否有一种我不知道的惯用方法,或者这是我最好的方法?
可能重复:
如何使用逗号作为千位分隔符打印数字?
例如:
>> print numberFormat(1234)
>> 1,234
Run Code Online (Sandbox Code Playgroud)
或者Python中是否有内置函数来执行此操作?
假设我有一个这样的类:
class Alphabet(object):
__init__(self):
self.__dict = {'a': 1, 'b': 2, ... 'z': 26}
@property
def a(self):
return self.__dict['a']
@property
def b(self):
return self.__dict['b']
...
@property
def z(self)
return self.__dict['z']
Run Code Online (Sandbox Code Playgroud)
这将是一项漫长而繁琐的任务,并且看起来非常多余.有没有办法动态创建这些属性?我知道您可以使用内置的setattr动态创建属性,但我想控制读/写/删除访问(因此我想使用属性).谢谢!